一,首先下载quartz-1.6.0.jar架包,到lib目录下
二,写你自己定时器业务方法
package com.lbnet.lzx.timing;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.scheduling.quartz.QuartzJobBean;
import com.lbnet.lzx.service.IOrderService;
public class OrderNoRefact extends QuartzJobBean{
private static BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext-*.xml");
@Override
protected void executeInternal(JobExecutionContext arg0)
throws JobExecutionException {
// TODO Auto-generated method stub
IOrderService orderdao=(IOrderService)factory.getBean("OrderServiceImpl");
System.out.println("订单超时!");
orderdao.updateOrderTimeOver();
}
}
三。在spring文件中进行配置
配置定时任务
配置定时时间
开启定时任务
四。一些定时参数意义
0 0/30 0/1 * * 代表每天每30分钟运行一次
0 0/3 0/1 * * 代表每天每3分钟运行一次
0 11 23 * * 代表每天晚上23:11运行一次
五。如果重启报异常
org.apache.commons.collections.SetUtils.orderedSet(Ljava/util/Set;)Ljava/util/Set;
请把commons-collections-2.1.1.jar,checkstytle-all.jar删掉,然后加入commons-collections.jar包就OK了
==============================================
Spring调度任务的运行时间可通过TriggerBean的属性进行配置,一般情况下不是使用SimpleTriggerBean就是使用
CronTriggerBean,这两个TriggerBean配置说明如下:
1) SimpleTriggerBean的配置:
class="org.springframework.scheduling.quartz.SimpleTriggerBean">
定时任务所在的bean的配置
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
2) CronTriggerBean的配置:
这里设置每隔一分钟执行一次。SimpleTriggerBean只能指定工作执行的频率,不能指定工作执行的具体时间。
比方说要求在每天的晚上10点执行某个具体的工作,那么SimpleTriggerBean就不能满足了,这时需要使用另外
一个bean:CronTriggerBean。
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
设置触发器