Spring 中配置定时任务

Spring 中集成了Quartz的工具,我们在Spring中使用的定时任务也是基于Quartz的,常用的有两种配置方式,一种是设置在系统启动后多少秒启动,然后在多久后重复执行,另外一种是比较灵活的设置方式可以设置在指定的某天某个时段执行,两者只是在任务本身的配置上不同而已,最终都是通过一个统一的方法进行加载执行。


简单方式的定时器

第一步 创建定时任务类


package cn.net.withub.ncs.core;

import java.sql.Date;
import java.util.List;

import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.JobDetailBean;
import org.springframework.scheduling.quartz.QuartzJobBean;


public class TaskBean {

public TaskBean() {
// TODO Auto-generated constructor stub
}

public void execute(){
//执行要做的操作
}

}




第二步 在Spring配置文件中配置定时任务


<!--配置基础类的信息-->
<bean id="taskBean" class="cn.net.withub.ncs.core.TaskBean" />


<!--配置转换器信息,主要用于把普通类转换成可用的任务类,指定原始类引用和调用的方法名-->
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="taskBean" />
<property name="targetMethod" value="execute" />
<property name="concurrent" value="false" /> <!--这是配置任务是否同步执行,就是说在前一个任务未执行完的时候是否继续计算时间来启动下一次任务,建议FALSE来保证任务的完整工作-->
</bean>

<!--配置简单定时任务的处理方法,开始时间,和重启执行周期-->
<bean id="simpleReportTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail">
<ref bean="jobDetail"/>
</property>
<property name="startDelay">
<value>5000</value>
</property>
<property name="repeatInterval">
<value>1000</value>
</property>
</bean>


<!--配置统一调度任务的类,LIST里面可以是多个-->
<bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="simpleReportTrigger"/>
</list>
</property>
</bean>



完整定时任务的配置可以参考下面这个链接的说明,主要区别就在于创建基础任务类的方式和Spring中任务配置的一点区别,统一调度都是一样的配置方式。
http://kai2008.iteye.com/blog/435675
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值