Quartz Cron表示式(定時任務)
表示式的使用格式:
表示式按照順序分別為秒,分,時,日,月,周,年(其中只有年是可選欄位即:可以不寫)
秒 | 分 | 時 | 日 | 月 | 周 | 年 |
0-59 | 0-59 | 0-23 | 1-31 | 0-11或 “JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV and DEC” | 1-7或“SUN, MON, TUE, WED, THU, FRI and SAT” | 空 或 1970-2099 |
特殊字元:
cron表示式允許特殊字元有:
* 星號:*號表示匹配該區域的合法的任意值。例如:0 * 17 * * ? 表示的是每天17點每分鐘激發一次。
?問號:? 號只能用在日和周域上,但是不能在這兩個域上同時使用。可以這麼理解?是"我 並 不 關 心 在 該 域 上 是 什 麼 值”例: 0 * 17 * * ? 表示的是每天17點每分鐘都激發。
, 逗號:逗號 (,) 是用來在給某個域上指定一個值列表範圍。例:0 0-5 14 * * ?表示每天14點到14:05期間的每1分鐘觸發一次事 件。
/ 斜槓:斜槓 (/) 是用於時間表的遞增,左邊是開始觸發時間,右邊是每隔固定時間觸發一次事件,如秒所在的域的值是5/15,表示5秒、20秒、35秒、50秒的時候都觸發一次事件
- 中劃線:中劃線 (-) 用於匹配一個特定的範圍值;如時所在的分鐘域的值是1-3,表示1、2、3分鐘時的時候會觸發事件。
L :last,最後的意思,如果是用在天這個域,表示月的最後一天,如果是用在周所在的域,如6L,表示某個月最後一個週五
W:weekday,工作日的意思。如天所在的域的值是15W,表示本月15日最近的工作日,如果15日是週六,觸發器將觸發上14日週五。如果15日是週日,觸發器將觸發16日週一。如果15日不是週六或週日,而是週一至週五的某一個,那麼它就在15日當天觸發事件,W 只能用在指定的日域為單天,不能是範圍或列表值。
#:用來指定每個月的第幾個星期幾,如"6#3" or "FRI#3"
表示式樣例:
每隔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 * * ?