Spring联姻Quartz达成作业调度
发布时间:2021-11-22 13:29:42 所属栏目:教程 来源:互联网
导读:这里用的是Spring-2.x和Quartz-1.x 里面涉及到的RecFileQuartz、MessageSendQuartz等类,都是普通的Java类 其中targetMethod属性值就是RecFileQuartz、MessageSendQuartz类中的方法 bean id=recfileQuartz class=com.ecpay.cus.quartz.RecFileQuartz propert
这里用的是Spring-2.x和Quartz-1.x 里面涉及到的RecFileQuartz、MessageSendQuartz等类,都是普通的Java类 其中<targetMethod>属性值就是RecFileQuartz、MessageSendQuartz类中的方法 <bean id="recfileQuartz" class="com.ecpay.cus.quartz.RecFileQuartz"> <property name="pbcDao" ref="pbcDao" /> <property name="nauDao" ref="nauDao" /> </bean> <bean id="messageSendQuartz" class="com.ecpay.cus.quartz.MessageSendQuartz"> <property name="jfbManager" ref="jfbManager"/> </bean> <!-- Spring作业调度 --> <!-- 0 0/10 9-23 * * ? : 每天09:00-23:00之间每10分钟触发一次 --> <!-- 0 */2 * * * ? : 02分钟触发一次 --> <!-- 0 30 0 * * ? : 每天00:30触发 --> <!-- 0 0 1 * * ? : 每天01:00触发 --> <!-- 0 0 0 1 * ? : 每月01号零点触发 --> <!-- autoStartup='true':SchedulerFactoryBean在初始化后是否马上启动Scheduler,默认为true。若设置为false,则需手工启动Scheduler --> <!-- concurrent='false':false为不允许任务并发执行,即第二个job将不会在第一个job完成之前开始执行.默认情况下,jobs是在并行的方式下运行的 --> <bean id="quartzJobFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="genCustomizeRelationTrigger"/> <ref bean="sendInfoTrigger"/> </list> </property> <property name="autoStartup" value="true"/> </bean> <bean id="genCustomizeRelationTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="genCustomizeRelationJobDetail" /> <property name="cronExpression" value="0 30 0 * * ?"/> </bean> <bean id="genCustomizeRelationJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="recfileQuartz" /> <property name="targetMethod" value="genRecFileRelation" /> <property name="concurrent" value="false" /> </bean> <bean id="sendInfoTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="sendInfoDetail"/> <property name="cronExpression" value="0 */10 * * * ?" /> </bean> <bean id="sendInfoDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="messageSendQuartz" /> <property name="targetMethod" value="executeSend" /> <property name="concurrent" value="false" /> </bean> 下面是MessageSendQuartz.java package com.ecpay.cus.quartz; import com.ecpay.cus.service.JFBBusinessManager; /** * 信息推送 * @author 玄玉<http://blog.csdn.net/jadyer> */ public class MessageSendQuartz { private JFBBusinessManager jfbManager; public void setJfbManager(JFBBusinessManager jfbManager) { this.jfbManager = jfbManager; } /** * 定时执行的方法 */ public void executeSend() throws Exception { System.out.println("恭喜您:信息推送任务启动了"); } } 下面是RecFileQuartz.java package com.ecpay.cus.quartz; import org.springframework.transaction.annotation.Transactional; import com.ecpay.cus.dao.NotActiveUserDAO; import com.ecpay.cus.dao.PayBusinessCustomizeDAO; /** * 业务定制对账文件之作业调度类 * @author 玄玉<http://blog.csdn.net/jadyer> * @create May 4, 2012 12:50:28 PM */ @Transactional public class RecFileQuartz { private PayBusinessCustomizeDAO pbcDao; private NotActiveUserDAO nauDao; public void setNauDao(NotActiveUserDAO nauDao) { this.nauDao = nauDao; } public void setPbcDao(PayBusinessCustomizeDAO pbcDao) { this.pbcDao = pbcDao; } /** * 生成定制关系到数据库 */ @Transactional public void genRecFileRelation() { System.out.println("恭喜您:Spring定制调度执行了该方法,本行打印的日志就是该方法的第一行代码"); } } (编辑:济南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |