Spring调度任务的运行时间可通过TriggerBean的属性进行配置,一般情况下不是使用SimpleTriggerBean就是使用
CronTriggerBean,这两个TriggerBean配置说明如下:
1) SimpleTriggerBean的配置:
<bean id="trigger.jobdetail"
class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail">
<ref bean="factory" />
</property>
<property name="startDelay">
<!-- 10 seconds 单位是毫秒 默认是10秒钟-->
<value>10000</value>
</property>
<property name="repeatInterval">
<!-- repeat every 600 seconds 单位是毫秒 默认是10分钟-->
<value>60000</value>
</property>
</bean>
定时任务所在的bean的配置
<bean id="factory"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="dailyjob.processor" />
</property>
<property name="targetMethod">
<value>process</value>
</property>
</bean>
2) CronTriggerBean的配置:
这里设置每隔一分钟执行一次。SimpleTriggerBean只能指定工作执行的频率,不能指定工作执行的具体时间。
比方说要求在每天的晚上10点执行某个具体的工作,那么SimpleTriggerBean就不能满足了,这时需要使用另外
一个bean:CronTriggerBean。
<bean id="Detail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject"><ref bean="mainServer"/></property>
<property name="targetMethod"><value>excute</value></property>
</bean>
设置触发器
<bean id="HRTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail"> <ref bean="Detail"/></property>
<property name="cronExpression"> <value>0/10 * * * * ?</value> </property>
</bean>
<!--启动触发器-->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<!-- 添加触发器 -->
<ref local="HRTrigger" />
</list>
</property>
</bean>