Quartz cron expressions(cron 表示式)格式如下。
欄位 | 秒 | 分 | 時 | 月日 | 月 | 週日 | 年 |
---|---|---|---|---|---|---|---|
必填 | 是 | 是 | 是 | 是 | 是 | 是 | 否 |
允許值 | 0-59 | 0-59 | 0-23 | 1-31 | 1-12 or JAN-DEC | 1-7 or SUN-SAT | 空值, 1970-2099 |
特殊符號 | , - * / | , - * / | , - * / | , - * ? / L W | , - * / | , - * ? / L W | , - * / |
必填有6個欄位,各欄位以空白隔開,第7個欄位選填。範例如* * * * ? *
或0/5 14,18,3-39,52 * ? JAN,MAR,SEP MON-FRI 2002-2010
。
特殊符號說明
-
* - 表示全部值。例如[分]設為
*
代表每一分鐘,等同0-59
。 -
? - 表示不指定值,僅用於[月日](day of month)及[週日](day of week)欄位,當不需特別指定值時使用。
-
- - 表示範圍。例如[時]設為
10-12
代表10、11、12點。 -
, - 表示多個值。例如[週日]設為
MON,WED,FRI
代表該週星期一,三,五。 -
/ - 表示遞增。例如[秒]設為
0/15
代表從0秒開始遞增15秒,也就是0,15,30,45
;[秒]設為5/15
代表從5秒開始遞增15秒,也就是5,20,35,50
;[月日]設為1/3
代表從該月第1日開始遞增3日,也就是1,4,7,10 ... 25,28,31
。 -
L - 表示最後,僅用於[月日](day of month)及[週日](day of week)欄位。在[月日]代表該月最後一天;在[週日]代表該該月最後的星期幾。例如[月日]設為
L
代表該月的最後一天,在一月為31日,二月為28日。[週日]設為L
代表該週最後一日也就是星期六;但[週日]若L
與其它值搭配,例如6L
代表該月最後的星期五。L
可搭配-
使用,例如[月日]設為L-3
代表該月最後一天的前三天。注意L
不要設定多個值或範圍,否則會出現無法預期的結果。 -
W - 指定最接近該月某日的星期一到五(工作日),僅用於[月日](day of month)欄位。例如[月日]設為
15W
代表最接近該月15日的星期一到五,若15日是星期六,則在星期五觸發;若15日是星期二,則在星期二觸發。不過若設為1W
,也就是最接近該月1日的星期一到五,若1日為星期六,則在星期一,也就是3日觸發,因為此設定最接近的星期一到五不會跨月。W
僅能用在[月日]欄位為單日設定,不可與多個值或範圍使用。W
可與L
搭配,[月日]設為LW
代表該月的最後一個星期一到五。 -
# - 表示該月的第幾個星期幾,僅用於[週日]欄位。例如[週日]設為
6#3
代表該月的第三個星期五,6
代表星期五,#3
代表該月第三個星期幾;[週日]設為2#1
代表該月的第一個星期一;[週日]設為4#5
代表該月的第五個星期三,如果該月沒有第幾個星期幾則不會觸發。
網路上有不少cron job表示式產生器,例如Cron Expression Generator & Explainer - Quartz可以設定需要觸發的時間並自動生成crom expression。
沒有留言:
張貼留言