您的位置:首页 > 编程语言 > Java开发

spring task定时器笔记

2014-03-01 10:18 323 查看
定时器有两种方式

1.延迟启动

   <bean id="timerTaskRunnerChain" class="bingo.uam.task.TimerTaskRunnerChain">
<property name="timerTasks">
<list>
<bean class="bingo.uam.task.XXXXTask"></bean>
</list>
</property>
</bean>

<bean id="btBuildTimerTask"
class="org.springframework.scheduling.timer.ScheduledTimerTask">
<!-- 设置启动延迟 -->
<property name="delay">
<value>3600000</value>   <!-- 1个小时后启动 -->
</property>
<!-- 后续延迟 -->
<property name="period">
<value>3600000</value>
</property>
<!-- 指定触发器信息 -->
<property name="timerTask">
<ref local="timerTaskRunnerChain" />
</property>
</bean>

<!-- 使用TimerFactoryBean类,你可以让Spring使用配置创建触发器,并为一组指定的ScheduledTimerTask bean自动创建Timer实例。 -->
<bean id="timerFactory"
class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list>
<ref local="btBuildTimerTask" />
</list>
</property>
</bean>


2.某个设定时刻启动

   <!-- 配置Quartz, 用于凌晨2点启动 -->
<bean id="blogTimerTask" class="bingo.uam.task.XXXXTask"/>
<bean id="blogSchedulerJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="blogTimerTask"/>
<property name="targetMethod" value="run"/> <!--启动的方法 -->
<property name="concurrent" value="false"/>
</bean>
<bean id="blogCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean" >
<property name="jobDetail" ref="blogSchedulerJobDetail"/>
<property name="cronExpression">
<!-- 秒 分 时 日 月 年  -->
<value>0 0 2 * * ?</value> <!-- 每天两点启动 -->
</property>
</bean>
<bean id="blogSchedulerFactory"  lazy-init="false" autowire="no"  class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local="blogCronTrigger"/>
</list>
</property>
</bean>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: