码迷,mamicode.com
首页 > Web开发 > 详细

Quartz.NET学习系列(三)--- Cron触发器

时间:2015-03-15 09:38:19      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:quartz.net   定时执行   任务调度   任务框架   计划   

        Cron触发器是使用Cron表达式来配置任务的时间的。


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表达式字符串说明

一个cron表达式的例子字符串为"0 0 12 ? * WED",这表示“每周三的中午12:00”。
单个子表达式可以包含范围或者列表。例如:前面例子中的周中的天这个域(这里是"WED")可以被替换为"MON-FRI", "MON, WED, FRI"或者甚至"MON-WED,SAT"。
通配符<strong>('*')</strong>可以被用来表示域中“每个”可能的值。因此在"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来表示.
<strong>'/'</strong>字符用来表示值的增量,例如, 如果分钟域中放入'0/15',它表示“每隔15分钟,从0开始”,如果在份中域中使用'3/20',则表示“小时中每隔20分钟,从第3分钟开始”或者另外相同的形式就是'3,23,43'。
<strong>'?'</strong>字符可以用在day-of-month及day-of-week域中,它用来表示“没有指定值”。这对于需要指定一个或者两个域的值而不需要对其他域进行设置来说相当有用。
<strong>'L'</strong>字符可以在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'选项时,最重要的是不要指定列表或者值范围,否则会导致混乱。
<strong>'W' </strong>字符用来指定距离给定日最接近的周几(在day-of-week域中指定)。例如:如果你为day-of-month域指定为"15W",则表示“距离月中15号最近的周几”。
<strong>'#'</strong>表示表示月中的第几个周几。例如: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


Quartz.NET学习系列(三)--- Cron触发器

标签:quartz.net   定时执行   任务调度   任务框架   计划   

原文地址:http://blog.csdn.net/eye_cng/article/details/44262307

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!