天天看點

Quartz定時任務cron表達式詳解quartz定時任務cron表達式詳解

quartz定時任務cron表達式詳解

cron表達式用于配置cronTrigger的執行個體。cron表達式實際上是由七個子表達式組成。這些表達式之間用空格分隔。

1.Seconds (秒)

2.Minutes(分)

3.Hours(時)

4.Day-of-Month  (天)

5.Month(月)

6.Day-of-Week (周)

7.Year(年)

Cron表達式的格式:秒 分 時 日 月 周 年(可選字段)。

Cron表達式     範圍 允許的特殊字元  示例
Seconds(秒) 0~59  , - * /  */5 * * * * ?每五秒鐘執行一次
Minutes(分) 0-59    , - * /  0 */1 * * * ?每分鐘執行一次
Hours(時) 0-23    , - * /  0 0 5-15 * * ? 每天5點至15點整點執行
Day-of-Month(天) 1~31(請注意所設定月份的時間天數) , - * ? / L W C 0 0 5,15 * * ? 每天5點、15點執行一次
Month(月) 0~11(JAN~DEC) , - * /  0 0 9 1 * ? 每月1号9點執行一次
Day-of-Week(周) 1~7(SUN~SAT) , - * ? / L C #  0 0 9 ? * WED 每周三9點執行一次
Year(年) 可選字段 1970-2099 , - * / 0 0 9 * * ? 2018 2018年每天9點執行一次

特殊字元含義:

* :代表所有可能的值。在Month中表示每個月,在Day-of-Month中表示每天,在Hours表示每小時。

- :表示指定範圍。如在Hours子表達式中

0 0 5-8 * * ?

,“

5-8

”表示在每天5點至8點整點觸發。

, :表示列出枚舉值。如:在Minutes子表達式中

0 5,15,25 * * * ?

,“

5,15,25

”表示在每小時的5分鐘、15分鐘、25分鐘觸發。

/ :表示用于指定增量。如:在Minutes子表達式中

0 0/15 * * * ?

,“0/15”表示從0分鐘開始,每15分鐘執行一次,也可以使用"*/15"等同于"0/15","3/20"表示從第3分鐘開始,每20分鐘執行一次。即與"3,23,43"(表示第3,23,43分鐘觸發)的含義一樣。

? :表示用在Day-of-Month和Day-of-Week中,指“沒有具體的值”。當兩個子表達式其中一個被指定了值之後,為了避免沖突,需要将另外一個的值設為“?”。如:在每月20日觸發排程,不管20号是星期幾,隻能用如下寫法:

0 0 0 20 * ?

,其中Day-of-Week最後隻能用“?”,而不能用“*”。

# :表示隻能用在day-of-week字段。用來指定這個月的第幾個周幾。如:在day-of-week字段用"6#3" 或 "FRI#3"表示這個月第3個周五(6指周五,3指第3個)。若指定的日期不存在,則不會觸發。

表達式例子:

0 * * * * ? 每1分鐘觸發一次

0 0 * * * ? 每天每1小時觸發一次

0 0 10 * * ? 每天10點觸發一次

0 * 14 * * ? 在每天下午2點到下午2:59期間的每1分鐘觸發 

0 30 9 1 * ? 每月1号上午9點半

0 15 10 15 * ? 每月15日上午10:15觸發

*/5 * * * * ? 每隔5秒執行一次

0 */1 * * * ? 每隔1分鐘執行一次

0 0 5-15 * * ? 每天5-15點整點觸發

0 0/3 * * * ? 每三分鐘觸發一次

0 0-5 14 * * ? 在每天下午2點到下午2:05期間的每1分鐘觸發 

0 0/5 14 * * ? 在每天下午2點到下午2:55期間的每5分鐘觸發

0 0/5 14,18 * * ? 在每天下午2點到2:55期間和下午6點到6:55期間的每5分鐘觸發

0 0/30 9-17 * * ? 工作時間内每半小時

0 0 10,14,16 * * ? 每天上午10點,下午2點,4點 

0 0 12 ? * WED 表示每個星期三中午12點

0 0 17 ? * TUES,THUR,SAT 每周二、四、六下午五點

0 10,44 14 ? 3 WED 每年三月的星期三的下午2:10和2:44觸發 

0 15 10 ? * MON-FRI 周一至周五的上午10:15觸發

0 0 23 L * ? 每月最後一天23點執行一次

0 15 10 L * ? 每月最後一日的上午10:15觸發 

0 15 10 ? * 6L 每月的最後一個星期五上午10:15觸發 

0 15 10 * * ? 2018 2018年的每天上午10:15觸發 

0 15 10 ? * 6L 2018-2019 2018年至2019年的每月的最後一個星期五上午10:15觸發 

0 15 10 ? * 6#3 每月的第三個星期五上午10:15觸發

繼續閱讀