歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Spring聯姻Quartz實現作業調度

這裡用的是Spring-2.x和Quartz-1.x

裡面涉及到的RecFileQuartz、MessageSendQuartz等類,都是普通的Java類

其中<targetMethod>屬性值就是RecFileQuartz、MessageSendQuartz類中的方法

  1. <bean id="recfileQuartz" class="com.ecpay.cus.quartz.RecFileQuartz">  
  2.         <property name="pbcDao" ref="pbcDao" />  
  3.         <property name="nauDao" ref="nauDao" />  
  4.     </bean>  
  5.     <bean id="messageSendQuartz" class="com.ecpay.cus.quartz.MessageSendQuartz">  
  6.         <property name="jfbManager" ref="jfbManager"/>  
  7.     </bean>  
  8.   
  9.   
  10.     <!-- Spring作業調度 -->  
  11.     <!-- 0 0/10 9-23 * * ? : 每天09:00-23:00之間每10分鐘觸發一次 -->  
  12.     <!-- 0 */2 * * * ?     : 02分鐘觸發一次 -->  
  13.     <!-- 0 30 0 * * ?      : 每天00:30觸發 -->  
  14.     <!-- 0 0 1 * * ?       : 每天01:00觸發 -->  
  15.     <!-- 0 0 0 1 * ?       : 每月01號零點觸發 -->  
  16.     <!-- autoStartup='true':SchedulerFactoryBean在初始化後是否馬上啟動Scheduler,默認為true。若設置為false,則需手工啟動Scheduler -->  
  17.     <!-- concurrent='false':false為不允許任務並發執行,即第二個job將不會在第一個job完成之前開始執行.默認情況下,jobs是在並行的方式下運行的 -->  
  18.     <bean id="quartzJobFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
  19.         <property name="triggers">  
  20.             <list>  
  21.                 <ref bean="genCustomizeRelationTrigger"/>  
  22.                 <ref bean="sendInfoTrigger"/>  
  23.             </list>  
  24.         </property>  
  25.         <property name="autoStartup" value="true"/>  
  26.     </bean>  
  27.       
  28.     <bean id="genCustomizeRelationTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">  
  29.         <property name="jobDetail" ref="genCustomizeRelationJobDetail" />  
  30.         <property name="cronExpression" value="0 30 0 * * ?"/>  
  31.     </bean>  
  32.     <bean id="genCustomizeRelationJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
  33.         <property name="targetObject" ref="recfileQuartz" />  
  34.         <property name="targetMethod" value="genRecFileRelation" />  
  35.         <property name="concurrent" value="false" />  
  36.     </bean>  
  37.   
  38.     <bean id="sendInfoTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">  
  39.         <property name="jobDetail" ref="sendInfoDetail"/>  
  40.         <property name="cronExpression" value="0 */10 * * * ?" />  
  41.     </bean>  
  42.     <bean id="sendInfoDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
  43.         <property name="targetObject" ref="messageSendQuartz" />  
  44.         <property name="targetMethod" value="executeSend" />  
  45.         <property name="concurrent" value="false" />  
  46.     </bean>  

下面是MessageSendQuartz.java

  1. package com.ecpay.cus.quartz;  
  2.   
  3. import com.ecpay.cus.service.JFBBusinessManager;  
  4.   
  5. /** 
  6.  * 信息推送 
  7.  * @author 玄玉<http://blog.csdn.net/jadyer> 
  8.  */  
  9. public class MessageSendQuartz {  
  10.     private JFBBusinessManager jfbManager;  
  11.     public void setJfbManager(JFBBusinessManager jfbManager) {  
  12.         this.jfbManager = jfbManager;  
  13.     }  
  14.   
  15.     /** 
  16.      * 定時執行的方法 
  17.      */  
  18.     public void executeSend() throws Exception {  
  19.         System.out.println("恭喜您:信息推送任務啟動了");  
  20.     }  
  21. }  

下面是RecFileQuartz.java

  1. package com.ecpay.cus.quartz;  
  2.   
  3. import org.springframework.transaction.annotation.Transactional;  
  4.   
  5. import com.ecpay.cus.dao.NotActiveUserDAO;  
  6. import com.ecpay.cus.dao.PayBusinessCustomizeDAO;  
  7.   
  8. /** 
  9.  * 業務定制對賬文件之作業調度類 
  10.  * @author 玄玉<http://blog.csdn.net/jadyer> 
  11.  * @create May 4, 2012 12:50:28 PM 
  12.  */  
  13. @Transactional  
  14. public class RecFileQuartz {  
  15.     private PayBusinessCustomizeDAO pbcDao;  
  16.     private NotActiveUserDAO nauDao;  
  17.     public void setNauDao(NotActiveUserDAO nauDao) {  
  18.         this.nauDao = nauDao;  
  19.     }  
  20.     public void setPbcDao(PayBusinessCustomizeDAO pbcDao) {  
  21.         this.pbcDao = pbcDao;  
  22.     }  
  23.       
  24.     /** 
  25.      * 生成定制關系到數據庫 
  26.      */  
  27.     @Transactional  
  28.     public void genRecFileRelation() {  
  29.         System.out.println("恭喜您:Spring定制調度執行了該方法,本行打印的日志就是該方法的第一行代碼");  
  30.     }  
  31. }  
Copyright © Linux教程網 All Rights Reserved