您的位置:首页 > 编程语言 > Java开发

在spring中用quartz实现定时调度

2016-04-08 09:52 417 查看
最近项目需要,要在特定的时间执行一段代码。

在网上百度了会,看见有个quartz项目,故用了一用。

步骤如下:

1.在manven中加入quartz

先在manven的pom中加入quartz:

<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.1.1</version>
</dependency>

2.配置quartz的spring文件

<!-- 1、Scheduler的配置 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<!-- 触发器列表 -->
<ref bean="testTrigger" />
<ref bean="testTrigger1" />
<ref bean="testTrigger2" />
<ref bean="testTrigger3" />
<ref bean="testTrigger4" />
</list>
</property>
<property name="autoStartup" value="true" />
</bean>
<!-- 2、Trigger的配置 begin-->
<bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<!-- 指定任务 -->
<property name="jobDetail" ref="testJobDetail" />
<!-- 指定任务时间
位置   含义         				允许的特殊字符
1      秒(0~59)           		     , -  *  /
2      分(0~59)           		     , -  *  /
3      小时(0~24) 	      		     , -  *  /
4      日期(1~31) 	      	    	  , -  *  /  ?  L  W  C
5      月(JAN~DEC或1~12)	  , -  *  /
6      星期(SUN~SAT或1~7) 	  , -  *  /  ?  L  C  #
7      年(可选,1970~2099)   ,若为空,表示全部时间范围, -  *  /
-->
<property name="cronExpression" value="0 40 20 * * ?" />
</bean>
<bean id="testTrigger1" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="testJobDetail" />
<property name="cronExpression" value="0 40 9 * * ?" />
</bean>
<bean id="testTrigger2" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="testJobDetail" />
<property name="cronExpression" value="0 50 11 * * ?" />
</bean>
<bean id="testTrigger3" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="testJobDetail" />
<property name="cronExpression" value="0 0 16 * * ?" />
</bean>
<bean id="testTrigger4" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="testJobDetail" />
<property name="cronExpression" value="0 0 18 * * ?" />
</bean>
<!-- 2、Trigger的配置 end-->
<!-- 3、JobDetail的配置 -->
<bean id="testJobDetail"	class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
<property name="jobClass" value="com.zhijianj.stucheck.service.quartz.SystemControllService"/>
</bean>


以上的cron中我写的是在每天的9:40,11:50,16:00,18:00,20:40触发,没有找到好的方法,只能写成这样了,若高手看见了有什么好的方法,还望赐教

3.完成调度类

调度类需要实现quartz中的Job接口,在execute方法中执行调度方法
package com.zhijianj.stucheck.service.quartz;

import java.util.Date;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

/**
* 系统调度类
* @author PuHy
* @createTime 2016年4月8日 上午9:53:40
* @function
*
*/
public class SystemControllService implements Job{

public void execute(JobExecutionContext arg0) throws JobExecutionException {
System.out.println("now"+new Date());
}
}
到此为止,quartz的配置就完成了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: