首页 > 代码库 > Spring整合quartz实现定时动态任务
Spring整合quartz实现定时动态任务
在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="http://www.mamicode.com/addHandlePayCashApplyToMq" /> <!-- 要执行的方法名称 -->
<!--false表示等上一个任务执行完后再开启新的任务-->
<property name="concurrent" value="http://www.mamicode.com/false"/>
</bean>
<!--触发器-->
<bean id="addHandlePayCashApplyToMqBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail" ref="addHandlePayCashApplyToMq" /> <property name="cronExpression" value="http://www.mamicode.com/${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实现定时动态任务
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。