不做浮躁的人
          正在行走的人...
          posts - 171,  comments - 51,  trackbacks - 0

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

          • 小時
          • 月內(nèi)日期
          • 周內(nèi)日期
          • 年(可選字段)
          Field Name Mandatory? Allowed Values Allowed Special Characters
          Seconds YES 0-59 , - * /
          Minutes YES 0-59 , - * /
          Hours YES 0-23 , - * /
          Day of month YES 1-31 , - * ? / L W C
          Month YES 1-12 or JAN-DEC , - * /
          Day of week YES 1-7 or SUN-SAT , - * ? / L C #
          Year NO empty, 1970-2099 , - * /

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

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

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

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

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

          一個cronString是一個字符串,包含6 7 個用空格分隔的域。6 個強制的和1 個可選的域如下:

          * 字符用于指定所有的值。例如,minute 域中的* 意為每分鐘。

          ? 字符用于day-of-month day-of-week 域。它被用于指定非特定值。這是有用的,當你需要在2個域中的一個,而不是另一個指定什么時。請參考以下的實例。

          - 字符用于指定范圍。例如hour 域中的10-12 意為1011 12 點。

          , 字符用于指定增值。例如day-of-week 域中的MONWEDFRI 意為星期一,星期三和星期五。

          / 字符用于指定增量。例如,seconds 域中的0/15 意為01530 45 秒。seconds域中的5/15 意為52035 50 秒。你也可在* 字符后指定/ – 在這個實例中,* 等價于在/ 前有0

          L 字符用于day-of-month day-of-week 域。這個字符是last 的簡寫,但它在2 個域中有不同意思。例如,day-of-month field 中的值L 意為一個月中的最后一天-一月31,非閏年的二月28。如果單獨在day-of-week field 使用,它僅僅意為7 SAT。但是如果在 day-of-week域中另一個值后使用,它意為這個月的倒數(shù)xxx 例如6L 意為此月的最后一個星期五。當使用L 選項時,指定列表或值的范圍很重要,因為其具有二義性。

          W 字符用于day-of-month 域。這個字符用于指定臨近給定某天最近的工作日(Monday-Friday)。作為一個實例,如果你指定15W 作為day-of-month 域的值,意為:距離此月15日最近的工作日。因為如果15日是星期六,觸發(fā)器將在星期五,也就是14fire。如果15日是星期天,觸發(fā)器將在星期一,也就是16fire。如果15 日是星期二,那么它將在星期二,15日(也就是當天)fire。然而,如果你指定1W 作為day-of-month 的值,如果1號是星期六,觸發(fā)器將在星期一,也就是3fire,因為它在一個月的邊界上不跳轉(zhuǎn)。當day-of-month 是一個single day,而不是一個范圍或是days 的列表時,才指定W 字符。

          L W 字符也可在day-of-month 表達式上組合,產(chǎn)生LW,它翻譯成此月的最后一個工作日。

          # 字符用于day-of-week 域。這個字符用于指定此月的第n 天。例如,day-of-week 域中的6#3 值意為此月中的第三個星期五( 6 = 星期五且"#3" = 此月的3)。其它實例:"2#1" = month 中的首個Monday"4#5" = month 中的第五個Wednesday。注意如果你指定#5,在此月中給定的day-of-week 沒有5 個,那么那個月不會發(fā)生firing

          C 字符用于day-of-month day-of-week 域。這個字符是calendar 的簡寫。這意味著如果有任何關(guān)聯(lián)的calendar,根據(jù)它計算值。如果沒有關(guān)聯(lián)的calendar,那么它等價于有一個all-inclusive calendarday-of-month 域中的5C 的值意為first day included by calendar on or after 5thday-of-week 域中的1C 的值意為first day included by calendar on or after sunday

          合法字符和months days of week 的名字不是大小寫敏感的。

          這里是一些完整實例:

        6. posted on 2007-07-18 10:46 不做浮躁的人 閱讀(2437) 評論(2)  編輯  收藏

          FeedBack:
          # re: Cron 表達式的寫法。
          2007-07-19 09:56 | BeanSoft
          cron 相當于 Windows 下的計劃任務(wù). 我們以前公司用它做 Weblogic 定時重啟, 以及報表, 挺不錯的.  回復  更多評論
            
          # re: Cron 表達式的寫法。
          2007-07-19 17:16 | 小雪飛刀
          樓主借閱了我的隨筆,你記得要注明出處!!!
          我的隨筆:
          http://www.aygfsteel.com/allen-zhe/archive/2007/01/09/92668.html  回復  更多評論
            

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


          網(wǎng)站導航:
           

          <2007年7月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          常用鏈接

          留言簿(9)

          隨筆分類(31)

          隨筆檔案(75)

          文章分類(1)

          文章檔案(3)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 股票| 离岛区| 白朗县| 郧西县| 大姚县| 连州市| 福泉市| 陆丰市| 嘉义市| 吴忠市| 定州市| 抚远县| 亳州市| 平山县| 青阳县| 三穗县| 泰兴市| 隆昌县| 井冈山市| 太白县| 江都市| 万宁市| 永登县| 西乌珠穆沁旗| 湖北省| 独山县| 富宁县| 克山县| 崇左市| 尉犁县| 和政县| 大田县| 彰武县| 乾安县| 佳木斯市| 景德镇市| 富锦市| 固原市| 宁津县| 临朐县| 高尔夫|