spring整合Quartz定时器
据说版本要对的上,
Spring 3.0版本中内置的Quartz版本是<2.0
1,java类
package com.xy.utils.quartz;
import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 测试定时器类
* @author javaw
*
*/
public class TestQuartz {
public static Logger logger = LoggerFactory.getLogger(TestQuartz.class);
public void TestMethod(){
logger.info("Auto Execute TestMethod start! Date={}" ,new DateTime().toString("YYYY-MM-DD HH:mm:ss" ));
logger.info("**********测试跑批类************");
logger.info("Auto Execute TestMethod end! Date={}" ,new DateTime().toString("YYYY-MM-DD HH:mm:ss" ));
}
}
2,配置
<!-- 实例化bean -->
<bean id= "testMethodQuartz" class ="com.xy.utils.quartz.TestQuartz"/>
<!-- 配置MethodInvokingJobDetailFactoryBean -->
<bean id= "testTaskMethod"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="testMethodQuartz"/>
<property name="targetMethod" value="TestMethod"/>
<property name="concurrent" value="false"/>
</bean>
<!-- 配置定时表达式 -->
<bean id= "testTaskTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean" >
<property name="jobDetail" ref="testTaskMethod" />
<!-- 每一分钟执行一次 -->
<property name="cronExpression" value="0 0/1 * * * ?" />
</bean>
<!-- 配置调度工厂 -->
<bean id= "testSchedulerFactoryBean"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers" >
<list>
<ref bean="testTaskTrigger" />
</list>
</property>
</bean>
3,这里附带一下简单的时间表达式
Quartz中时间表达式的设置-----corn表达式
时间格式: <!-- s m h d m w(?) y(?) -->, 分别对应: 秒>分>小时>日>月>周>年,
举例:
1.每天什么时候执行:
<value>0 59 23 * * ?</value>: 如下为每天23:59:00开始执行
<value>0 0/1 * * * ?</value>:每一分钟执行一次
<value>0 1,2,3 11,12 * * ? </value>: 每天11:01,11:02,11:03; 12:01,12:02,12:03分执行任务
浙公网安备 33010602011771号