CronExpression 表達式詳解

參數序號 參數名 是否可選
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-FRIMON, 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章