Cron 表達式

一、7個子域的說明

cron 的表達式是字符串,其實是由七子表達式(從左到右),描述個別細節的時間表。這些子表達式是分開的空白。工具

順序(從左到右) 子串 有效數字 有效字符
1 Seconds(秒) 0~59 的整數 , - * /
2 Minutes(分) 0~59 的整數 , - * /
3 Hours(小時) 0~23 的整數 , - * /
4 Day-of-Month(日期) 1~31 的整數 , - * /?LWC
5 Month(月份) 1~12 的整數或者 JAN-DEC , - * /
6 Day-of-Week(星期) 1~7 的整數或者 SUN-SAT , - * /?LWC
7 Year (可選字段) 1970~2099 , - * /

二、特殊字符說明:

字符 適用域 含義 實例
* ALL 表示匹配該域的任意值。
? 只在DayofMonthDayofWeek 也表示匹配域的任意值,但實際不會。由於 DayofMonth 和 DayofWeek 會相互影響。 例如想在每個月的 20 日觸發調度,無論 20 日究竟是星期幾,則只能使用以下寫法: 13 13 15 20 * ?, 其中最後一位只能用?,而不能使用,若是使用表示無論星期幾都會觸發,實際上並非這樣。
- ALL 表示範圍。 例如在 Minutes 域使用 5-20,表示從 5 分到 20 分鐘每分鐘觸發一次
/ ALL 表示起始時間開始觸發,而後每隔固定時間觸發一次。 例如在 Minutes 域使用 5/20, 則意味着 5 分鐘觸發一次,而 25,45 等分別觸發一次.
, ALL 表示列出枚舉值。 例如:在 Minutes 域使用 5,20,則意味着在 5 和 20 分每分鐘觸發一次。
L 只在DayofMonthDayofWeek 表示最後。 若是在 DayofWeek 域使用 5L, 意味着在最後的一個星期四觸發。
W DayofMonth 表示有效工做日 (週一到週五)。系統將在離指定日期的最近的有效工做日觸發事件。 例如:在 DayofMonth 使用 5W,若是 5 日是星期六,則將在最近的工做日:星期五,即 4 日觸發。若是 5 日是星期天,則在 6 日 (週一) 觸發;若是 5 日在星期一到星期五中的一天,則就在 5 日觸發。另一點,W 的最近尋找不會跨過月份 。
LW DayofWeek 這兩個字符能夠連用,表示在某個月最後一個工做日。 有可能不是星期五,例如:某個月的 31 號爲週二,那麼此知足最後一個工做日,但不是週五。
# DayofMonth 用於肯定每月第幾個星期幾。 例如在 4#2,表示某月的第二個星期三。

三、在線生成和校驗工具:

在線 Cron 表達式生成器.net

四、參考:

  1. Cron 表達式詳解 - Be yourself. - CSDN 博客
    注:特別棒的一個教程。
  2. 最全的 Cron 表達式教程
相關文章
相關標籤/搜索