Cron表達式速查,1張表記清楚

Cron表達式是一個字符串,定義時間規則,由6或7個時間域組成,空格分隔。1張表整理清楚含義和規則,並舉例經常使用表達式,放手邊速查。ide

Cron表達式

時間域序號 含義 取值範圍 特殊字符
1 秒Seconds 0-59 ,-*/
2 分鐘Minutes 0-59 ,-*/
3 小時Hours 0-23 ,-*/
4 日期DayOfMonth 1-31 ,-*/ ? L W C
5 月份Month 1-12 ,-*/ JAN-DEC
6 星期DayOfWeek 1-7 ,-*/ ? L C # SUN-SAT
7 年Year (可選) 1970-2099 ,-*/

特殊字符含義

JAN-DEC 月份英語簡稱
SUN-SAT 星期英語簡稱
星期的1表示星期天,2表示星期一,依次類推
* 表示取值範圍內的全部數字
/ 表示每隔固定時間觸發依次,好比0/5表示從0開始每5個單位時間
- 表示兩個數字之間的範圍,好比3-7表示3到7之間,包含3和7
, 表示離散的枚舉數字,好比2,3,5,7表示指定的這幾個時間
? 只能用在日期DayOfMonth和星期DayOfWeek兩個域,表示不指定,避免日期和星期的互相影響,好比指定每個月的20日,無論是星期幾,正確寫法是:0 0 0 20 * ?,其中星期只能用?,若是使用*將觸發錯誤。
L 只能用於日期DayOfMonth和星期DayOfWeek,用於日期時表示月份的最後一天,用於星期時不加數字表示週六,加數字表示最後一個周幾,好比0 0 0 ? * 5L表示每個月的最後一個星期四
W 只能用於日期DayOfMonth,表示週一到週五有效工做日,將在離指定日期的最近的有效工做日觸發事件。例如在日期使用5W,若是5日是星期六,則將在最近的工做日星期五(4日)觸發。若是5日是星期天,則在6日(星期一)觸發;若是5日在星期一到星期五中的一天,則就在5日觸發。另一點,W的最近工做日尋找不會跨月份。
LW 兩個字符連用時表示某個月最後一個工做日
# 只能用於星期DayOfWeek,表示每一個月第幾個星期幾,好比4#2表示第二個星期三

經常使用表達式

0/5 * * * * ? 每5秒鐘
0 0/5 * * * ? 每5分鐘
0 0 6 * * ? 天天早上6點
0 0 9,13,19 * * ? 天天上午9點,下午1點,晚上7點
0 0 23-7/2,8 * * ? 天天晚上11點到早上7點之間的每兩個小時,和早上8點
0 0/30 9-17 * * ? 朝九晚五工做時間內每半小時
0 0 9-21 ? * MON-SAT 表示996天天的每小時
0 0 7 LW * ? 每個月最後一個工做日早上7點
0 0 4 1 1 ? 每一年的1月1日早上4點
相關文章
相關標籤/搜索