參數序號 | 參數名 | 是否可選 |
---|---|---|
1 | Seconds | 否 |
2 | Minutes | 否 |
3 | Hours | 否 |
4 | Day-of-Month | 否 |
5 | Month | 否 |
6 | Day-of-Week | 否 |
7 | Year | 是 |
例如:"0 0 12 ? * WED"
在每星期三下午 12:00 執行
其中每個元素可以是一個值 (6),一個連續區間 (9-12),一個間隔時間(8-18/4)(/表示每隔4小時),一個列表(1,3,5),通配符,由於月份中的日期和星期中的日期這兩個元素互斥的,必須要對其中一個設置 ?
0 0 10,14,16 * * ? 每天上午 10 點,下午 2 點,4 點
0 0/30 9-17 * * ? 朝九晚五工作時間內每半小時
0 0 12 ? * WED 表示每個星期三中午 12 點
個別子表達式可以包含範圍,例如在前面的例子裏 WED
可以替換成 MON-FRI
,MON, WED, FRI
甚至是 MON-WED,SAT
每一個字段都有一套可以指定有效值,如下:
參數名 | 有效值 |
---|---|
Seconds (秒) | 可以用數字 0~59 表示 |
Minutes(分) | 可以用數字 0~59 表示 |
Hours(時) | 可以用數字 0~23 表示 |
Day-of-Month (日) | 可以用數字 1~31 中的任一個值,但要注意一些特別的月份 |
Month (月) | 可以用 0~11 或用字符串 JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC 表示 |
Day-of-Week (周) | 可以用數字 1~7 表示(1=星期日)或用字符口串 SUN, MON, TUE, WED, THU, FRI, SAT 表示 |
* | 代表整個時間段 |
/ | 爲特別單位,表示爲 每 如 0/15 表示每隔 15 分鐘執行一次, 0 表示爲從 0 分開始,3/20 表示表示每隔 20 分鐘執行一次,3 表示從第 3 分鐘開始執行 |
? | 表示每月的某一天,或第周的某一天,由於月份中的日期和星期中的日期這兩個元素互斥的,必須要對其中一個設置 ? |
L | 用於每月,或每週,表示爲每月的最後一天,或每個月的最後星期幾如 6L 表示每月的最後一個星期五 |
W | 表示爲最近工作日,如 15W 放在每月 (Day-of-Month) 字段上表示爲到本月15日最近的工作日 |
# | 是用來指定每月第 N 個工作日,在每週(Day-of-Week)這個字段中內容爲 6#3 或者 FRI#3 則表示每月第三個星期五 |
Cron 表達式範例:
每隔5秒執行一次:*/5 * * * * ?
每隔1分鐘執行一次:0 */1 * * * ?
每天23點執行一次:0 0 23 * * ?
每天凌晨1點執行一次:0 0 1 * * ?
每月1號凌晨1點執行一次:0 0 1 1 * ?
每月最後一天23點執行一次:0 0 23 L * ?
每週星期天凌晨1點實行一次:0 0 1 ? * L
在26分、29分、33分執行一次:0 26,29,33 * * * ?
每天的0點、13點、18點、21點都執行一次:0 0 0,13,18,21 * * ?
作者 Github : tojohnonly , 博客 : EnskDeCode