Cron定時規則
計劃可安排像每周一到周五早上8點或每月最后一個星期五的早上1點半。一個表達式是用6個或7個用空格分離的字符串來組成,以下為可選的字段。
Field Name??????Allowed Values????????Allowed Special Characters
Seconds???????????0-59?????????????????????????, - * /
Minutes????????????0-59?????????????????????????, - * /
Hours???????????????0-23?????????????????????????, - * /
Day-of-month???1-31?????????????????????????, - * ? / L W C
Month??????????????1-12 or JAN-DEC????, - * /
Day-of-Week???1-7 or SUN-SAT??????, - * ? / L C #
Year (Optional)?empty, 1970-2099???, - * /
*字符串通常用來所有字段中,例如,*在分鐘字段意思為“每分鐘”
?字符串通常使用“day-of-month”和“day-of-week”字段中,它通常指定為“不是特殊值”。
-字符串被指定范圍中,例如“10-12”在小時字段中,就意思為10點,11點和12點。
,字符串被用作為附加值,例如“MON,WED,FRI”在星期字段中就意味的,星期一,星期三和星期五
/字符串被用作為增量,例如,在分鐘字段中“0/15”就表示為0,15,30和45秒,而“5/15”在分鐘字段中表示5,20,35,50,你可以將“/”放在“*”之后,在這里,*相當于在“/”前面放個“0”
L字符串被允許在“day-of-month”和“day-of-week”字段中,這個字符串相當于“last”的簡寫,但它在這兩個字段中有不同的意思。例如,在“day-of-month”字段中就意味這個月份的最后一天,如一月是31日,非閏年二月是28日,如果這個字符串用在“day-of-week”,它就意味7或星期六,但是如果它使用在“day-of-week”字段里面的其他值之后的話,它就意味“這個月的最后XXX天”,例如,“6L”就意味該月的最后個星期五。
W字符串可在“day-of-month”字段,這個字符串被用作所賦予的日期的工作日中,例如,如果你在“day-of-month”字段上指定“15W”,哪意思是該月離15日最近的工作日。如果15日是星期六,哪就將觸發結果為14日星期五。如果15日是星期日,那結果將是16日星期一,如果15日是星期二,那結果是15日星期二,可是如果你指定是“1W”,如果1日是星期六,哪結果將是3日星期一,這是因為它不會跨越月份的邊界,W字符串只能指定單一日期,而不能指定日期范圍。
L和W字符中也能夠組合在“day-of-moth“字段中,表達式是“LW”,它的意思是當月的最后一個工作日。
#字符串被使用在“day-of-week”字段中,該字符串被指定在當月的哪一天的情況下,例如,在“day-of-week”字段中值“6#3”表示當月的第三個星期五(6表示星期五,#3表示當前的第三個)。“2#1”表示當月的第一個星期一,“4#5”表示當月的第五個星期三,注意的是如果你指定是“#5”,那當月中如果沒有第五個的話,它并不會觸發。
C字符串被允許在“day-of-month”和“day-of-week”字段中,這個字符串是“calendar”的簡寫,它的意思是計劃所關聯的日期,如果日期沒有被關聯,那他相當于日歷中所有日期,例如值“5C”在“day-of-month”字段中就相當于日歷5日以后的第一天。“1C”在“day-of-week”字段中就相當于星期日后的第一天。
示例:
Expression?????????????????????????????????Meaning
"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點到3點。
"0 0/5 14 * * ?"???????????????????????? 每天的2點到2:55點每5鐘運行一次。
"0 0/5 14,18 * * ?"????????????????????每天的2點到2:55點,且6點到6:55點每五鐘運行一次
"0 0-5 14 * * ?"???????????????????????? 每天2點到2:05分。
"0 10,44 14 ? 3 WED"???????????????3月的每周三的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"????????????????????????每月的最后一個星期五的10:15
"0 15 10 ? * 6L 2002-2005"??????在2002,2003,2004,2005年的每個月的最后一個星期五的10:15分。
"0 15 10 ? * 6#3"????????????????????????每月的第三個星期五的10:15分。