[轉載]quartz的配置

          首先我們來寫一個被調度的類: package com.kay.quartz;

          1. public class QuartzJob  
          2. {  
          3.     public void work()  
          4.     {  
          5.     System.out.println("Quartz的任務調度!!!");  
          6.     }  

           

          Spring的Quartz配置文件:

          1. <?xml version="1.0" encoding="UTF-8"?> 
          2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 
          3.  
          4. <beans>      
          5.         <!-- 要調用的工作類 --> 
          6.         <bean id="quartzJob" class="com.kay.quartz.QuartzJob"></bean> 
          7.         <!-- 定義調用對象和調用對象的方法 --> 
          8.         <bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> 
          9.             <!-- 調用的類 --> 
          10.             <property name="targetObject"> 
          11.                 <ref bean="quartzJob"/> 
          12.             </property> 
          13.             <!-- 調用類中的方法 --> 
          14.             <property name="targetMethod"> 
          15.                 <value>work</value> 
          16.             </property> 
          17.         </bean> 
          18.         <!-- 定義觸發時間 --> 
          19.         <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean"> 
          20.             <property name="jobDetail"> 
          21.                 <ref bean="jobtask"/> 
          22.             </property> 
          23.             <!-- cron表達式 --> 
          24.             <property name="cronExpression"> 
          25.                 <value>10,15,20,25,30,35,40,45,50,55 * * * * ?</value> 
          26.             </property> 
          27.         </bean> 
          28.         <!-- 總管理類 如果將lazy-init='false'那么容器啟動就會執行調度程序  --> 
          29.         <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
          30.             <property name="triggers"> 
          31.                 <list> 
          32.                     <ref bean="doTime"/> 
          33.                 </list> 
          34.             </property> 
          35.         </bean> 
          36.       
          37. </beans>測試程序:  
          38. package com.kay.quartz;  
          39. import org.springframework.context.ApplicationContext;  
          40. import org.springframework.context.support.ClassPathXmlApplicationContext;  
          41.  
          42. public class MainTest  
          43. {  
          44.     /**  
          45.      * @param args  
          46.      */  
          47.     public static void main(String[] args)  
          48.     {  
          49.         System.out.println("Test start.");  
          50.         ApplicationContext context = new ClassPathXmlApplicationContext("quartz-config.xml");  
          51.         //如果配置文件中將startQuertz bean的lazy-init設置為false 則不用實例化  
          52.         //context.getBean("startQuertz");  
          53.         System.out.print("Test end..");        
          54.     }  

           

          我們需要把log4j的配置文件放入src目錄下,啟動main類就可以了。

          關于cron表達式(來自網絡):

          Cron 表達式包括以下 7 個字段:

          小時

          月內日期

          周內日期

          年(可選字段)

          特殊字符

          Cron 觸發器利用一系列特殊字符,如下所示:

          反斜線(/)字符表示增量值。例如,在秒字段中“5/15”代表從第 5 秒開始,每 15 秒一次。

          問號(?)字符和字母 L 字符只有在月內日期和周內日期字段中可用。問號表示這個字段不包含具體值。所以,如果指定月內日期,可以在周內日期字段中插入“?”,表示周內日期值無關緊要。字母 L 字符是 last 的縮寫。放在月內日期字段中,表示安排在當月最后一天執行。在周內日期字段中,如果“L”單獨存在,就等于“7”,否則代表當月內周內日期的最后一個實例。所以“0L”表示安排在當月的最后一個星期日執行。

          在月內日期字段中的字母(W)字符把執行安排在最靠近指定值的工作日。把“1W”放在月內日期字段中,表示把執行安排在當月的第一個工作日內。

          井號(#)字符為給定月份指定具體的工作日實例。把“MON#2”放在周內日期字段中,表示把任務安排在當月的第二個星期一。

          星號(*)字符是通配字符,表示該字段可以接受任何可能的值。

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

          秒 0-59 , - * /

          分 0-59 , - * /

          小時 0-23 , - * /

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

          月份 1-12 或者 JAN-DEC , - * /

          星期 1-7 或者 SUN-SAT , - * ? / L C #

          年(可選) 留空, 1970-2099 , - * /

          表達式意義

          "0 0 12 * * ?" 每天中午12點觸發

          "0 15 10 ? * *" 每天上午10:15觸發

          "0 15 10 * * ?" 每天上午10:15觸發

          "0 15 10 * * ? *" 每天上午10:15觸發

          "0 15 10 * * ? 2005" 2005年的每天上午10:15觸發

          "0 * 14 * * ?" 在每天下午2點到下午2:59期間的每1分鐘觸發

          "0 0/5 14 * * ?" 在每天下午2點到下午2:55期間的每5分鐘觸發

          "0 0/5 14,18 * * ?" 在每天下午2點到2:55期間和下午6點到6:55期間的每5分鐘觸發

          "0 0-5 14 * * ?" 在每天下午2點到下午2:05期間的每1分鐘觸發

          "0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44觸發

          "0 15 10 ? * MON-FRI" 周一至周五的上午10:15觸發

          "0 15 10 15 * ?" 每月15日上午10:15觸發

          "0 15 10 L * ?" 每月最后一日的上午10:15觸發

          "0 15 10 ? * 6L" 每月的最后一個星期五上午10:15觸發

          "0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一個星期五上午10:15觸發

          "0 15 10 ? * 6#3" 每月的第三個星期五上午10:15觸發

          每天早上6點

          0 6 * * *

          每兩個小時

          0 */2 * * *

          晚上11點到早上8點之間每兩個小時,早上八點

          0 23-7/2,8 * * *

          每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點

          0 11 4 * 1-3

          1月1日早上4點

          0 4 1 1 *

          轉載于和申的日志


          posted on 2010-01-22 10:58 Cloud kensin 閱讀(235) 評論(0)  編輯  收藏 所屬分類: Java

          <2010年1月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導航

          統計

          常用鏈接

          留言簿(4)

          隨筆分類

          相冊

          相冊

          搜索

          最新評論

          主站蜘蛛池模板: 濮阳市| 巨野县| 龙陵县| 金阳县| 武夷山市| 阳原县| 平山县| 土默特右旗| 贞丰县| 白玉县| 徐汇区| 乳源| 新安县| 黄骅市| 石门县| 吉安市| 额敏县| 卫辉市| 安岳县| 华亭县| 封丘县| 巴南区| 高碑店市| 崇仁县| 甘德县| 元朗区| 股票| 永定县| 井冈山市| 全州县| 鹤壁市| 临朐县| 昂仁县| 永德县| 五指山市| 广德县| 永春县| 星子县| 通江县| 太康县| 察哈|