发表于: 2017-07-03 23:50:08

1 1084


一、今天完成的事情:

今天方案评审通过了。还是分不清DAL和mybatis有啥区别。

分享一波自己配置的定时器吧

其实java里面是有定时器的叫

但是java的定时器和定时任务只能识别简单的任务,不能完成规定在某天某时完成某个方法这样的事情。

所以我们要使用新的定时器:Quartz

<!--使用quartz定时器-->
<dependency>
 <groupId>org.quartz-scheduler</groupId>
 <artifactId>quartz</artifactId>
 <version>${quartz.version}</version>
</dependency>
<quartz.version>2.2.2</quartz.version>

导入quartz包之后我们需要把它和spring进行整合

<bean id="taskJob" class="com.lizenan.attend.task.TaskCheck"/>
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
   <property name="targetObject" ref="taskJob"/>
   <property name="targetMethod" value="checkTask"/>
   <property name="concurrent" value="false"/>
</bean>

<bean id="attendcheck" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
   <property name="jobDetail" ref="jobDetail"/>
   <property name="cronExpression">
       <value>0/10 * * * * ?</value>
   </property>
</bean>
<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
   <property name="triggers">
       <list>
           <ref bean="attendcheck"/>
       </list>
   </property>
</bean>

这里我们知道我们先定义了一波名为taskJob的,方法为task下面的taskcheck

package com.lizenan.attend.task;

/**
* Created by lzn312 on 2017/7/1.
*/
public class TaskCheck {
   public void checkTask(){
       System.out.println("检查了");
   }
}

taskcheck的方法如下

然后我们需要配置一个jobDetail,里面的参数基本有,目标对象,方法,规定方法是不是能同时发生,然后我们需要配置一个

quartz.CronTriggerFactoryBean

因为我们不可能定时只是用一个方法肯定能规定很多方法在某一个时刻执行。,然后配置corn表达式(这个有点6)具体的配置就是秒/分/时/日/月/年

具体可以网站百度一波。这里我规定了10s执行一个checkTask方法

这里面配置的就是多个方法。

然后我们把执行一下程序

看结果,额。忘记说了,因为是和spirng整合肯定要把资源import到spring下面进行加载

我们看到结果:

没10s,使用一次定义方法,配置完成无误~

二、遇到的问题:无

三、明天计划的事情:

四、收获:刚刚忘了提到,对于大的架构,如果资源限制的时候我我们使用nginx,这样配置quartz,会是调用那个服务器的service不明确,从而不知道更新的是谁,quartz有解决的办法,我还没看完。等会了在分享一波。


返回列表 返回列表
评论

    分享到