Quarzt.NET的Cron表达式理解

时间:2023-03-09 16:16:37
Quarzt.NET的Cron表达式理解

网上关于Quarzt.NET的Cron表达式介绍有很多,但都是基本的语法,稍微深入一些的就没有了。

基本语法介绍请参看:

http://www.cnblogs.com/lzrabbit/archive/2012/04/14/2371420.html

在项目中遇到一个复杂需求:在2014-01-01到2015-12-31区间内,每天的00:10:00到08:20:00之间每隔两分钟执行一次任务。

刚开始想用一个Cron表达式来实现,怎么想都不对,也没有对Cron理解透彻。

后来在****请教了高手,解决了,连接地址如下:

http://bbs.****.net/topics/390922376

结合这两周做的项目,对Cron表达式记录下,对于正好有需求的人方便理解。

小时可以有区间的概念,比如:00 20 00-15/2 01-31 01-12 ? 2014-2014
就是在0点到15点的20分,每过2小时执行一次。

但是秒和分钟没有区间的概念,因为该区间依赖小时;
比如:00 20-30/2 00-15 01-31 01-12 ? 2014-2014
这个代表的意思是0点到15点的每个小时的20分到30分之间每过2分钟执行一次。
而不是00:20:00到15:30:00之间每过2分钟执行一次。

0/30 11 00 01-31 01-12 ? 2014-2014
0/30 0 1-14 01-31 01-12 ? 2014-2014
0/30 0-40 15 01-31 01-12 ? 2014-2014
这三个表达式的意思是:在0点11分的时候执行2次
在1点到14点的0分时执行2次
在15点的0到40分每30秒执行一次

0/30 11-59 00 01-31 01-12 ? 2014-2014
0/30 * 1-14 01-31 01-12 ? 2014-2014
0/30 0-40 15 01-31 01-12 ? 2014-2014
这三个表达式的意思是:在0点11分之后每30秒执行1次
在1点到14点每30秒执行1次
在15点的0到40分每30秒执行一次

0 49/2 00 01-31 01-12 ? 2014-2014
0 0/2 1-14 01-31 01-12 ? 2014-2014
0 0-21/2 15 01-31 01-12 ? 2014-2014
这三个表达式的意思是:在0点49分开始每2分钟执行一次
在1点到14点每2分钟执行1次
在15点的0到21分每2分钟执行一次