Quartz.NET Cron表達式 在線生成器

jopen 8年前發布 | 12K 次閱讀 .NET開發

Cron表達式 又是Quartz玩出的個高大上的玩意,根據表達式設置調度執行時間,可以玩出各種組合

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”,就表示三天

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:11am

這些簡單的還好,復雜一點的又讓人有點暈菜了,在網上發現一個在線生成器 
懶得當搬運工了,點這里有說明

 

來自: http://blog.csdn.net/lee576/article/details/46120153

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!