Spring的定时任务详细配置

1. Web.xml的配置
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/beans-dao.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>


2. spring配置文件中的配置
<!-- 测试定时任务 -->
<bean id="timerJob" class="com.dayang.spring.timer.TimerTest">
<property name="programService">
<ref bean="programService"/>
</property>
</bean>

<bean id="methodInvokingJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="timerJob"/>
</property>
<property name="targetMethod">
<value>doJob</value>//执行任务的方法名称
</property>
<!--
<property name="concurrent" value="false"/>
-->
</bean>

<!-- 定义触发时间 -->
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="methodInvokingJobDetail"/>
</property>

<!-- 应用启动后 10 seconds -->
<!-- repeat every 60 seconds -->
<!--
<property name="startDelay">
<value>10000</value>
</property>

<property name="repeatInterval">
<value>720000</value>
</property>
-->

<property name="cronExpression">
<!-- 代表 每月2号 18点执行一次 -->
<!-- value>0 0 18 2 * ?</value-->
<!-- 测试可用 每天18时执行 每5分钟执行一次 (0/5)-->
<!-- 每一分钟执行一次 -->
<value>0 0/1 * * * ?</value>
</property>

<!-- 每天11点 27-30分 每隔一分钟执行一次 -->
<!-- property name="cronExpression" value="0 27-30 11 * * ?" /-->

</bean>

<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">
<property name="triggers">
<list>
<ref local="simpleTrigger"/>
</list>
</property>
</bean>


3. java代码

public class TimerTest {

private IProgramService programService;
private Logger log = Logger.getLogger(TimerTest.class);

public IProgramService getProgramService() {
return programService;
}

public void setProgramService(IProgramService programService) {
this.programService = programService;
}


public void doJob(){
log.debug("********* Begin do my job *********");
Date d =new Date();
//Long count = this.programService.countAll();
//System.out.println("Programs number is ["+count+"] time ["+d.toString()+"]");
System.out.println(d.toString());

log.debug("********* End do my job *********");
}

}



4.解决定时任务重复执行的问题
http://blog.csdn.net/chaijunkun/article/details/6925889


附件是quartz的jar包
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值