首先要明白Quartz定时器分为两种:一种是每隔多少时间去执行一次,另外一种是到达某一个指定时间去执行一次。
这个是第一个定时器:
package org.ht.util;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
public class SimpleTriggerJob extends QuartzJobBean{
/**
* 这个类是每隔多少时间来执行的业务类。把你要执行的业务写在这里
*
*/
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
System.out.println("SimpleTriggerJob 定时器开始-------------------");
}
}
然后去spring的配置文件去配置
这里配置了两个定时器:
<!-- 配置quartz -->
<!-- 任务实例化 -->
<!-- 第一个定时器 -->
<bean id="myJob"
class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
<property name="Durability" value="true"/>
<property name="jobClass" value="org.ht.util.SimpleTriggerJob" />
</bean>
<!-- 第二个定时器 -->
<bean id="cronJob"
class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
<property name="Durability" value="true"/>
<property name="jobClass" value="org.ht.util.CronTriggerJob" />
</bean>
<!-- -这个定时器是到达指定的时间去执行 -->
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<!-- 这个属性是为了解决这个的报错:---》 SchedulerException: Jobs added with no trigger must be durable. -->
<property name="jobDetail" ref="cronJob"/>
<!-- cron表达式的解释自己去百度。。。。 -->
<property name="cronExpression" value="0 5 16 * * ?"/>
</bean>
<bean id="myTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
<property name="jobDetail" ref="myJob"/>
<property name="startDelay" value="2000"/><!-- 每隔2秒执行一次 -->
<property name="repeatInterval" value="5000"/>
</bean>
<!-- 触发定时器 -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<!-- 把定时器加入列表 -->
<ref bean="myTrigger"/>
<ref bean="cronTrigger"/>
</list>
</property>
</bean>
<!-- 配置quartz -->