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觸發