海水正藍

          面朝大海,春暖花開
          posts - 145, comments - 29, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          【轉】Spring+Quartz實現定時任務的配置方法

          Posted on 2012-12-04 12:25 小胡子 閱讀(368) 評論(0)  編輯  收藏 所屬分類: Quartz

          1、Scheduler的配置

          <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
          <property name="triggers">
          <list>
          <ref bean="testTrigger"/>
          </list>
          </property>
          <property name="autoStartup" value="true"/>
          </bean> 
              說明:Scheduler包含一個Trigger列表,每個Trigger表示一個作業。

          2、Trigger的配置

          <bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
          <property name="jobDetail" ref="testJobDetail"/>
          <property name="cronExpression" value="*/1 * * * * ?"/>
          <!-- 每隔1秒鐘觸發一次 -->
          </bean> 
              說明:

                   1)Cron表達式的格式:秒 分 時 日 月 周 年(可選)。

                         字段名                 允許的值                        允許的特殊字符  

                         秒                         0-59                               , - * /  

                         分                         0-59                               , - * /  

                         小時                   0-23                               , - * /  

                         日                         1-31                               , - * ? / L W C  

                         月                         1-12 or JAN-DEC          , - * /  

                         周幾                     1-7 or SUN-SAT            , - * ? / L C #  

                         年 (可選字段)     empty, 1970-2099      , - * /

                         “?”字符:表示不確定的值

                         “,”字符:指定數個值

                         “-”字符:指定一個值的范圍

                         “/”字符:指定一個值的增加幅度。n/m表示從n開始,每次增加m

                         “L”字符:用在日表示一個月中的最后一天,用在周表示該月最后一個星期X

                         “W”字符:指定離給定日期最近的工作日(周一到周五)

                         “#”字符:表示該月第幾個周X。6#3表示該月第3個周五

                   2)Cron表達式范例:

                           每隔5秒執行一次:*/5 * * * * ?

                           每隔1分鐘執行一次:0 */1 * * * ?

                           每天23點執行一次:0 0 23 * * ?

                           每天凌晨1點執行一次:0 0 1 * * ?

                           每月1號凌晨1點執行一次:0 0 1 1 * ?

                           每月最后一天23點執行一次:0 0 23 L * ?

                           每周星期天凌晨1點實行一次:0 0 1 ? * L

                           在26分、29分、33分執行一次:0 26,29,33 * * * ?

                           每天的0點、13點、18點、21點都執行一次:0 0 0,13,18,21 * * ?

          3、JobDetail的配置

          <bean id="testJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
          <property name="targetObject" ref="testJob"/>
          <property name="targetMethod" value="execute"/>
          <property name="concurrent" value="false"/>
          <!-- 是否允許任務并發執行。當值為false時,表示必須等到前一個線程處理完畢后才再啟一個新的線程 -->
          </bean> 
          4、業務類的配置

          <bean id="testJob" class="com.cjm.web.service.quartz.TestJob"/>  

          5、業務類源代碼

          public class TestJob { 
           
          public void execute(){ 
             
          try{                 
                 
          //.          
                }catch(Exception ex){
                 ex.printStackTrace();
                 }
               }
             } 
              說明:業務類不需要繼承任何父類,也不需要實現任何接口,只是一個普通的java類。

          注意:

               在Spring配置和Quartz集成內容時,有兩點需要注意

                     1、在<Beans>中不能夠設置default-lazy-init="true",否則定時任務不觸發,如果不明確指明default-lazy-init的值,默認是false。

                     2、在<Beans>中不能夠設置default-autowire="byName"的屬性,否則后臺會報 org.springframework.beans.factory.BeanCreationException錯誤,這樣就不能通過Bean名稱自 動注入,必須通過明確引用注入


          原文出自:

          http://www.oschina.net/question/8676_9032


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 紫金县| 肇源县| 天全县| 普兰店市| 朝阳区| 边坝县| 漠河县| 张家口市| 黎川县| 东源县| 湘潭市| 高尔夫| 朔州市| 繁峙县| 民乐县| 武宁县| 盖州市| 河北省| 容城县| 吐鲁番市| 海兴县| 封开县| 平阴县| 怀仁县| 桃源县| 富锦市| 南宁市| 丰宁| 临朐县| 桃园市| 年辖:市辖区| 绥阳县| 林西县| 宁国市| 遂宁市| 尼勒克县| 衡南县| 莒南县| 若尔盖县| 新巴尔虎右旗| 大足县|