Cron表達式 又是Quartz玩出的個高大上的玩意,根據表達式設置調度執行時間,能夠玩出各類組合html
Cron表達式介紹
Cron表達式總共有7個值,其中一個可選,具體以下(摘自官方文檔):
值 是否必須 容許的值範圍 容許的字符
Seconds YES 0-59 , - * /
Minutes YES 0-59 , - * /
Hours YES 0-23 , - * /
Day of month YES 1-31 , - * ? / L W
Month YES 1-12 or JAN-DEC , - * /
Day of week YES 1-7 or SUN-SAT , - * ? / L #
Year NO empty, 1970-2099 , - * /
Cron表達式字符串說明
[csharp] view plaincopy
一個cron表達式的例子字符串爲」0 0 12 ? * WED」,這表示「每週三的中午12:00」。
單個子表達式能夠包含範圍或者列表。例如:前面例子中的週中的天這個域(這裏是」WED」)能夠被替換爲」MON-FRI」, 「MON, WED, FRI」或者甚至」MON-WED,SAT」。
通配符(’‘)能夠被用來表示域中「每一個」可能的值。所以在」Month」域中的表示每月,而在Day-Of-Week域中的*則表示「週中的每一天」。
全部的域中的值都有特定的合法範圍,這些值的合法範圍至關明顯,例如:秒和分域的合法值爲0到59,小時的合法範圍是0到23,Day-of-Month中值得合法凡範圍是0到31,可是須要注意不一樣的月份中的天數不一樣。月份的合法值是0到11。或者用字符串JAN,FEB MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV 及DEC來表示。Days-of-Week能夠用1到7來表示(1=星期日)或者用字符串SUN, MON, TUE, WED, THU, FRI 和SAT來表示.
‘/’字符用來表示值的增量,例如, 若是分鐘域中放入’0/15’,它表示「每隔15分鐘,從0開始」,若是在份中域中使用’3/20’,則表示「小時中每隔20分鐘,從第3分鐘開始」或者另外相同的形式就是’3,23,43’。
‘?’字符能夠用在day-of-month及day-of-week域中,它用來表示「沒有指定值」。這對於須要指定一個或者兩個域的值而不須要對其餘域進行設置來講至關有用。
‘L’字符能夠在day-of-month及day-of-week中使用,這個字符是」last」的簡寫,可是在兩個域中的意義不一樣。例如,在day-of-month域中的」L」表示這個月的最後一天,即,一月的31日,非閏年的二月的28日。若是它用在day-of-week中,則表示」7」或者」SAT」。可是若是在day-of-week域中,這個字符跟在別的值後面,則表示」當月的最後的周XXX」。例如:」6L」 或者 「FRIL」都表示本月的最後一個週五。當使用’L’選項時,最重要的是不要指定列表或者值範圍,不然會致使混亂。
‘W’ 字符用來指定距離給定日最接近的周幾(在day-of-week域中指定)。例如:若是你爲day-of-month域指定爲」15W」,則表示「距離月中15號最近的周幾」。
‘#’表示表示月中的第幾個周幾。例如:day-of-week域中的」6#3」 或者 「FRI#3」表示「月中第三個週五」。
摘自博客http://www.cnblogs.com/shanyou/archive/2007/08/25/869073.html
在2.3.1版本中新增了一個字符
「,」 逗號表示附加的值,好比」MON,WED,FRI」,就表示三天spa
Cron表達式例子(摘自官方文檔)
表達式 含義
0 0 12 * * ? 天天的12am
0 15 10 ? * * 天天10:15am
0 15 10 * * ? 天天10:15am
0 15 10 * * ? * 天天10:15am
0 15 10 * * ? 2005 2005年的天天10:15am
0 * 14 * * ? 天天的2:00pm-3:00pm的每一分鐘
0 0/5 14 * * ? 天天2:00pm-3:00pm的每5分鐘,結束時間是2:55pm
0 0/5 14,18 * * ? 天天2:00pm-3:00pm和6:00pm-7:00pm的每5分鐘,結束時間是2:55pm和6:55pm
0 0-5 14 * * ? 天天2:00pm-2:05pm的每一分鐘
0 10,44 14 ? 3 WED 3月份的每週三的2:10pm和2:44pm
0 15 10 ? * MON-FRI 週一到週五的10:15am
0 15 10 15 * ? 每月第15天的10:15am
0 15 10 L * ? 每月最後一天的10:15am
0 15 10 L-2 * ? 每月倒數次日的10:15am
0 15 10 ? * 6 每月週五的10:15am
0 15 10 ? * 6L 每月最後一個週五的10:15am
0 15 10 ? * 6L 2002-2005 2002-2005每月最後一個週五的10:15am
0 15 10 ? * 6#3 每月第3個週五的10:15am
0 0 12 1/5 * ? 每月的前5天(第1天開始)的12:00pm
0 11 11 11 11 ? 每一年11月11號的11:11amorm
這些簡單的還好,複雜一點的又讓人有點暈菜了,在網上發現一個在線生成器
懶得當搬運工了,點這裏有說明htm