1. 程式人生 > >Quartz Cron表示式(定時任務)

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 * * ?