概述:需求微信token两个小时失效,所以需要一个定时任务去取最新的Token
1、需要引用jar 包
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.0</version>
</dependency>
Spring framework相关jar包 和 commons-logging.jar
2、写一个执行的任务类
public class TakeWeiXinTokenQtz {
private static int counter = 0;
protected void execute() {
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
long ms = System.currentTimeMillis();
System.out.println("\t\t" + sf.format(new Date(ms)));
System.out.println("(" + counter++ + ")");
}
}
总结:其实就是一个简单类
3、配置一个定时任务
它的思想就是基于工厂模式
类似一个工厂有很多需要自动触发的任务,而每个任务触发事件和时间不同,如何统一管理
它有总厂长, 分厂,车间主任,工人
对应quart就是
SchedulerFactoryBean ------》CronTriggerFactoryBean------》MethodInvokingJobDetailFactoryBean---》TakeWeiXinTokenQtz(你创建的bean)
SchedulerFactoryBean :里面triggers ,可以触发一系列事情
CronTriggerFactoryBean: 表示什么事情?发生规则(时间相关的)
MethodInvokingJobDetailFactoryBean :表示目标对象和目标的方法
TakeWeiXinTokenQtz:你就需要创建这样bean和execute(方法)、
<!-- 配置定时任务 -->
<bean id="takeWeiXinTokenQtz" class="com.rinlink.intelligent.weixin.task.TakeWeiXinTokenQtz"/>
<bean id="springQtzJobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean = "takeWeiXinTokenQtz"/>
</property>
<property name="targetMethod">
<value>execute</value>
</property>
</bean>
<!-- 调用触发器 -->
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="springQtzJobMethod"/>
<!-- run every morning at 6 AM -->
<property name="cronExpression" value="*/5 * * * * ?"/>
</bean>
<!-- 调度工厂 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTrigger"/>
</list>
</property>
</bean>
cronExpression :就是配置触发规则,这里是每5秒触发一次,可以自己百度一下很多的。
4、日志:
[org.quartz.core.JobRunShell] - Calling execute on job DEFAULT.springQtzJobMethod
[org.quartz.core.QuartzSchedulerThread] - batch acquisition of 1 triggers
2017-07-21 11:46:10
(1)
[org.quartz.core.QuartzSchedulerThread] - batch acquisition of 1 triggers
[org.quartz.core.JobRunShell] - Calling execute on job DEFAULT.springQtzJobMethod
2017-07-21 11:46:15
(2)
注意:web项目或者你要读取该配置文件。