1. 程式人生 > >cron表示式總結

cron表示式總結

 cron表示式用於配置cronTrigger的例項,在定時任務中會用到cron表示式。cron表示式實際上是由七個子表示式組成。這些表示式之間用空格分隔。

可通過工具校驗:http://cron.qqe2.com/
一、cron表示式結構
1.Seconds (秒)
2.Minutes(分)
3.Hours(小時)
4.Day-of-Month (天)
5.Month(月)
6.Day-of-Week (周)
7.Year(年)

二、各欄位的含義
(1)*:表示匹配域的任意值。假如在Minutes域中使用*,表示每分鐘都會觸發。
0 * 9 * * ? 表示每天從9點開始,每分鐘觸發一次,執行一個小時

(2)?:只能用在DayofMonth和DayofWeek兩個域,指沒有具體的值。當著兩個表示式其中一個被指定後,為了避免衝突,需要將另一個值設為?。例如:想在每月20日觸發排程,不管20號是星期幾,只能用如下寫法:0 0 0 20 * ?,其中最後以為只能用“?”,而不能用“*”。
0 0 0 20 * ? 表示每個月20號觸發
0 0 0 ? * WED 表示每個星期三觸發
0 0 0 ? * 4 表示每個星期三觸發
(3),:表示列舉值。
0 0 0 1,20 * ? 表示在每月的1號、20號觸發
(4)-:表示指定範圍。
0 0 0 1-20 * ? 表示每個月的1號到20號觸發
(5)/:被用於指定增量。
0 15/30 0 20 * ? 從每月20號的0點15分執行,每隔30分鐘觸發一次

6)L:只能出現在DayofMonth和DayofWeek域。在DayofMonth使用L,表示每月最後一天觸發,在DayofWeek使用
0 0 0 L * ? 表示每個月的最後一天觸發
0 0 0 ? * L 表示每個星期六觸發
0 0 0 ? * 7L 表示每個月的最後一個星期六觸發
(7)W:表示有效工作日(週一到週五)。只能出現在DayofMonth,配合指定日期使用。系統將在指定日期的最近的有效工作日觸發。例如:在 DayofMonth使用5W,如果5日是星期六,則將在最近的工作日:星期五,即4日觸發。如果5日是星期天,則在6日(週一)觸發;如果5日在星期一到星期五中的一天,則就在5日觸發。另外一點,W的最近尋找不會跨過月份 。
0 0 0 5W * ? 表示在每月5號最近的一個有效工作日觸發
0 0 0 LW * ? 表示在每個月的最後一天最近的有效工作日
(8)#:用於第幾個星期幾,只能在DayofWeek中使用
0 0 0 ? * 4#2 表示每個月的第二個星期三觸發