Spring整合quartz實現定時動態任務
阿新 • • 發佈:2017-07-19
comm 通過 app 定時器 表示 時間 con 任務 images
在Spring中使用Quartz有兩種方式實現:第一種是任務類繼承QuartzJobBean,第二種則是在配置文件裏定義任務類和要執行的方法,類和方法可以是普通類。很顯然,第二種方式遠比第一種方式來的靈活。
這裏使用MethodInvokingJobDetailFactoryBean,任務類可以不實現Job接口,通過targetMethod指定調用方法,實現定時動態任務功能。
<bean id="addHandlePayCashApplyToMq"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean "><!-- 使用MethodInvokingJobDetailFactoryBean,任務類可以不實現Job接口,通過targetMethod指定調用方法 -->
<property name="targetObject" ref="batchJobService"/>
<property name="targetMethod" value="addHandlePayCashApplyToMq" /> <!-- 要執行的方法名稱 -->
<!--false表示等上一個任務執行完後再開啟新的任務-->
<property name="concurrent" value="false"/>
</bean>
<!--觸發器-->
<bean id="addHandlePayCashApplyToMqBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail" ref="addHandlePayCashApplyToMq" /> <property name="cronExpression" value="${transaction_batchjob_cronExpression_addHandlePayCashApplyToMqBean}" />//配置定時器時間 </bean>
<!--調度工廠-->
<!-- ======================== 調度工廠 ======================== --> <bean id="SpringJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="addHandleCashApplyToMqBean" /> <ref bean="addHandlePayCashApplyToMqBean" /> <ref bean="addTeamListToMqBean" /> </list> </property> </bean>
quartz-cronExpression.properties
#Transaction處理提現申請,周一至周五中午12點
transaction_batchjob_cronExpression_addHandlePayCashApplyToMqBean=30 * * ? * MON-FRI
Spring整合quartz實現定時動態任務