SSH中Spring Quartz定时器的用法(ZT)

2014-11-24 10:14:25 · 作者: · 浏览: 0

一,首先下载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文件中进行配置

配置定时任务



com.lbnet.lzx.timing.OrderNoRefact

配置定时时间



0 0/30 0/1 * *


开启定时任务








四。一些定时参数意义

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">






10000





60000



定时任务所在的bean的配置


class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">





process



2) CronTriggerBean的配置:

这里设置每隔一分钟执行一次。SimpleTriggerBean只能指定工作执行的频率,不能指定工作执行的具体时间。

比方说要求在每天的晚上10点执行某个具体的工作,那么SimpleTriggerBean就不能满足了,这时需要使用另外

一个bean:CronTriggerBean。


class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">



excute


设置触发器




0/10 * * * *