定時任務的cron運算式
Cron運算式對特殊字符的大小寫不敏感,對代表星期的縮寫英文大小寫也不敏感,
一. cron運算式的格式
秒 分 時 日 月 星期 年(可省略)
以空格隔開
二. 特殊符號詳解
?
該字符只在日期和星期欄位中使用,它通常指定為“無特指的值”,相當于占位符;
*
可用在所有欄位中,表示對應時間域的每一個時刻,例如, 在分鐘欄位時,表示“每分鐘”;
-
表達一個范圍,如在小時欄位中使用“10-12”,則表示從10到12點,即10,11,12;
,
表達一個串列值,如在星期欄位中使用“MON,WED,FRI”,則表示星期一,星期三和星期五;
/
x/y用于表示一個等引數列,x為首項,y為公差,該符號用在不同的位置有不同的表達,如在分鐘欄位中使用0/15,則表示為0,15,30和45秒,而5/15在分鐘欄位中表示5,20,35,50,你也可以使用*/y,它等同于0/y;
L
該字符只在日期和星期欄位中使用,代表“Last”的意思,但它在兩個欄位中意思不同,L在日期欄位中,表示這個月份的最后一天,如一月的31號,非閏年二月的28號;如果L單獨用在星期中,則表示星期六,等同于7;如果配合數字出現,如 6L則表示該月的最后星期五;
C
該字符只在日期和星期欄位中使用,代表“Calendar”的意思,它的意思是計劃所關聯的日期,如果日期沒有被關聯,則相當于日歷中所有日期,例如5C在日期欄位中就相當于日歷5日以后的第一天,1C在星期欄位中相當于星期日后的第一天,
W
該字符只能出現在日期欄位里,是對前導日期的修飾,表示離該日期最近的作業日,例如15W表示離該月15號最近的作業日,如果該月15號是星期六,則匹配14號星期五;如果15日是星期日,則匹配16號星期一;如果15號是星期二,那結果就是15號星期二,但必須注意關聯的匹配日期不能夠跨月,如你指定1W,如果1號是星期六,結果匹配的是3號星期一,而非上個月最后的那天,W字串只能指定單一日期,而不能指定日期范圍;
LW
在日期欄位可以組合使用LW,它的意思是當月的最后一個作業日;
#
該字符只能在星期欄位中使用,表示當月某個作業日,如6#3表示當月的第三個星期五(6表示星期五,#3表示當前的第三個),而4#5表示當月的第五個星期三,假設當月沒有第五個星期三,忽略不觸發;
三. 示例
0 30 17 * * ?: 每年每月每周每日的17點30分,即每天的17點30分提示準備下班;也可以寫成0 30 17 * * ? * (不省略年) 或者 0 30 17 ? * * 或者 0 30 17 * ? *0 30 17 * * ? 2022: 2022年每天的17點30分提示打卡0 * 18 * * ?:每年每月每周每日18點的每分鐘,即每天始于18:00 終于18:59的每一分鐘,提示別加班了打卡跑路0 0/5 14,18 * * ?:每天的14點和18點所處的小時,每5分鐘運行一次0 0-30 18 * * ?: 每天18:00-18:30的每一分鐘0 30 17 ? * Mon,Tue,Thurs: 每周的星期一星期二星期四,通知加班0 0 18 ? * 6L: 每月的最后一個星期五的18:00 提示去吃頓大餐0 0 18 L * ?:每月最后一天的18:00 提示建立新的Mon檔案把上個月的作業匯總0 0 18 LW * ?: 每月的最后一個作業日的18點 提示做一個作業總結0 0 18 ? * 6#3: 每月的第三個星期五的18點,提示不需要加班
4. 附言
參考檔案:https://blog.csdn.net/userlhj/article/details/89510837
如有疑點謬誤,歡迎評論區留言!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/261447.html
標籤:其他
下一篇:一篇吃透mysql(個人筆記)
