Cron表達式


本文翻譯自:

http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/crontrigger.html

 

1.簡介

    Cron作為一個Unix工具,已經存在很長一段時間了,用於實現任務調度的功能。CronTrigger類基於Cron而來。

    CronTrigger使用Cron表達式創建任務調度,比方說“每周一到周五的8:00”或者“每個月最后一個周五的下午1:30”。

2.格式

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 ,_*?/LW
Month yes 1-12 or JAX-DEC ,_*/
Day of Week yes 1-7 or SUN-SAT ,_*?/L#
Year no empty,1970-2099 ,_*/

 

 

 

 

 

 

 

簡單的Cron表達式可以簡單到:* * * * ? *

復雜的表達式可以如: 0/5 14,18,3-39,52 * ? HAX,MAR,SEP MON-FRI 2002-2010

3.特殊字符

  • *   (所有值):用於選擇該字段的所有可選值,如果在Minuate位則表示每分鍾
  • (非指定的值):當在某些字段需要指定一些值而其他字段不指定時使用。比方說想在一個月的第10天觸發,而不關心這天是一周的第幾天,則可以在第4位寫10而第6位放“?”。
  • -    :用於定義范圍:第三位寫“10-12”指10點、11點、12點。
  • ,    :用於指定其他值。比方說,“MON,WED,FRI”在第6位,表示每周一、周三、周五
  • /    :用於指定增量。比方說在第1位寫"0/15”表示第0、15、30和45秒,而“5/15”表示第2、20、35和50秒。
  • L  (last):在不同的字段含義不同,在第4位表示每月的最后一天,單字符在第6位表示“7”或者"SAT"。如果在其他字符后,比方說“6L”在第6位表示“當月的最后一個周五”。也可以指定偏移量,比方說“L-3”表示倒數第3天。
  • W(周):用於指定給定日期最近的工作日。比方說,在第4位指定“15W”表示“月份中的的第15天最近的工作日”,如果第15天是周日則會在16號觸發,如果是周六則在14號觸發,如果是工作日則在當天觸發。但是需要注意的是,如果設置的是“1W”而第1號是周六,那將在3號觸發,即觸發是不能跨月的。'W'字符只能用於 ‘day-of-month’是單個一天時,而不能是連續的日期。 'L'和'W'字符經常組合在一起使用‘LW’,表示‘這個月的最后一個工作日’。
  • #:用於指定月份中的第幾天。比方說,‘6#3’在‘day-of-week’表示這個月的第三個周五(國外周日是第一天)。

4.示例

表達式 含義
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 * * ? 每天的14:00到14:59的每個整分鍾觸發
0 0/5 14 * * ? 每天的14:00到14:55中每5分鍾觸發一次
0 0/5 14,18 * * ? 每天的14:00到14:55中每5分鍾觸發一次,18:00到18:55中每5分鍾觸發一次
0 0-5 14 * * ? 每天的14:00到14:05中每分鍾觸發一次
0 10,44 14 ? 3 WED 3月份的每個周三,在下午的14:10和14:44觸發
0 15 10 ? * MON-FRI 每個周一、周二、周三、周四、周五的上午10:15觸發
0 15 10 15 * ? 每個月的第15天的10:15觸發
0 15 10 L * ? 每個月最后一天的10:15觸發
0 15 10 L-2 * ? 每個月的倒數第三天的10:15觸發
0 15 10 ? * 6L 每個月的最后一個周五的10:15觸發
0 15 10 ? * 6L 2002-2005 在2002、2003、2004、2005年的每個月的最后一個周五的上午10:15觸發
0 15 10 ? * 6#3 每個月的第3個周五的上午10:15觸發
0 0 12 1/5 * ? 在每個月的第一天開始,每隔5天的中午12點觸發
0 11 11 11 11 ? 每年的11月11號的上午11:11觸發
   

 

5.備注

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM