網頁

2020/12/24

Quartz 排程表示式格式 cron expressions format

Quartz cron expressions(cron 表示式)格式如下。

欄位月日週日
必填
允許值0-590-590-231-311-12 or JAN-DEC1-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。


沒有留言:

張貼留言