Spring + Quartz 响应定时任务简单案例

概述:需求微信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项目或者你要读取该配置文件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值