<!--[if !supportLists]-->
<!--[endif]-->Cron触发器(CronTrigger)
CronTrigger的功能比SimpleTrigger强大,它可以实现基于类似于日历概念的作业调度,而不是单单基于一定的时间间隔的。
使用CronTrigger,我们能够定义如下类型的日历型的Schedule:每个星期五的中午,每个周末的早上9:30,或者每周一、周三和周五的早上9:00到10:00每隔5分钟。
<!--[if !supportLists]-->
<!--[endif]-->Cron表达式(Cron Expressions)
Cron-Expressions用于配置CronTrigger实例,Cron-Expressions是一串字符串,实际上它由六个子字符串组成,子字符串间采用空格分离,从左到右分别代表:Seconds Minutes Hours Day-of-Month Month Day-of-Week。
字符串“0 0 12 ? * WED”是一个完整的Cron-Expressions例子,它所表达的意思是:每周三早上12:00。
各个子表达式的值可以是一个范围或者列表,比如,上个例子中的Day-of-Week域的值“WED”可以用“MON-FRI”、“MON,WED,FRI”或者“MON-WED,SAT”来替代。
所有子表达式都有指定各自的取值范围,下面对Cron-Expressions的各个子表达式和取值范围进行说明:
子表达式
|
允许的值
|
允许的特殊字符
|
Seconds
|
0-59
|
- * /
|
Minutes
|
0-59
|
- * /
|
Hours
|
0-23
|
- * /
|
Day-of-Month
|
1-31
|
- * ? / L W
|
Month
|
1-12或JAN-DEC
|
- * /
|
Day-of-Week
|
1-7或SUN-SAT
|
- * ? / L #
|
Years(Optional)
|
为空或1970-2099
|
- * /
|
‘-’字符表示:值的范围,10-12在Hours域中表示为:10、11和12;
‘*’字符表示:可以为任意值,‘*’在Minutes域中表示为:每分钟;
‘/’字符表示:一个左边的数值是右边基数的递增值,‘0/15’在Seconds域中表示为:第0、15、30和45秒,‘5/15’ 在Seconds域中表示为:第5、20、35和50;
‘?’字符表示:没有对该域指定值,可以为任意值,不对该域进行限制,‘?’只能用在Day-of-Month和Day-of-Week域中;
‘L’字符表示:‘L’是取‘Last’的第一个字母,也只能用在Day-of-Month和Day-of-Week域中,在Day-of-Month域中的意思是:月份的最后一天,在Day-of-Week域中的意思是:‘7’或‘SAT’,但是在Day-of-Week域中用在另一个值后的意思是:该月的最后一个星期几,如:‘6L’为:该月的最后一个星期五;
‘W’字符表示:‘W’是取‘Weekday’的第一个字母,只能用在Day-of-Month域中,‘W’代表了最接近给定那一天的工作日,如:在Day-of-Month域中把值设为:15W,表示的意思是:该月的第15日最接近的工作日,所以当第15日是周六时,Trigger将在第14日的周五执行触发,当第15日是周天时,Trigger将在第16日的周一执行触发,当第15日是工作日时,Trigger将在第15日的当天执行触发;然而在Day-of-Month域中把值设为:1W,当第1日是周六时,Trigger将在第3日的周一执行触发,因为它不会跨越月份的范围,‘W’字符只能是该月中的一天,而不是一个范围或天数的列表;在Day-of-Month 域中可以结合使用‘L’和‘W’字符‘LW’,‘LW’表示:月份的最后一个工作日;
‘#’字符表示:月份的第几个星期几,只能用在Day-of-Week域中,如:在Day-of-Week域中把值设为:6#3,表示的意思是:该月的第3个星期5(day
6=Friday and “#3”=the 3rd one in the month);2#1表示的意思是:该月的第1个星期1;4#5表示的意思是:该月的第5个星期3;需要注意:不能把值设为“#5”,因为一个月中不可能有第5个星期3,如果这样设置,将导致该月无法执行触发;
下面举一些完整的Cron- Expressions例子:
表达式
|
意思
|
0 0 12
* * ?
|
每天12:00执行触发
|
0 15 10
? * *
|
每天10:15执行触发
|
0 15 10
* * ?
|
每天10:15执行触发
|
0 15 10
* * ? *
|
每天10:15执行触发
|
0 15 10
* * ? 2005
|
2005年的每天10:15执行触发
|
0 * 14
* * ?
|
每天从14:00到14:59每隔1分钟执行一次触发
|
0 0/5
14 * * ?
|
每天从14:00到14:59每个5分钟执行一次触发
|
0 0/5
14,18 * * ?
|
每天从14:00到14:59和18:00到18:59每隔5分钟执行一次触发
|
0 0-5
14 * * ?
|
每天从14:00到14:05每隔1分钟执行一次触发
|
0 10,44
14 ? 3 WED
|
3月的每个星期3的14:10和14:44分别执行一次触发
|
0 15 10
15 * ?
|
每月的第15日10:15执行一次触发
|
0 15 10
L * ?
|
每月最后一天的10:15执行一次触发
|
0 15 10
? * 6L
|
每月的最后一个星期5的10:15执行一次触发
|
0 15 10
? * 2002-2005
|
2002、2003、2004、2005年的每个月的最后一个星期5的10:15执行一次触发
|
0 15 10
? * 6#3
|
每月的第3个星期5的10:15执行一次触发
|
当Schedule中要求比较复杂,采用单个的Trigger无法实现时,可以配置多个的Trigger来实现,比如:每天的9:00到10:00之间每隔5分钟执行一次触发,并且在每天的13:00到22:00之间每隔20分钟执行一次触发,配置2个Trigger并把2配置好的2个Trigger注册到相同的Job中就可以很简单的实现上述情况。
分享到:
相关推荐
Quartz中的cron-like表达式解析 cron-like unix-like c#
赠送jar包:quartz-2.3.0.jar; 赠送原API文档:quartz-2.3.0-javadoc.jar; 赠送源代码:quartz-2.3.0-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.0.pom; 包含翻译后的API文档:quartz-2.3.0-javadoc-API...
.NET-Quartz-Cron-Parser Quartz Cron 表达式转换为中文自然语言的查询工具, 使用C#作为语言开发
该压缩包内包含两个quartz的jar包, 分别是quartz-1.6.0.jar和quartz-all-1.6.0.jar
quartz-2.4.0-SNAPSHOT-distribution.tar.gz包,解压后可查看里面的simple
quartz-all-1.6.3.jar
赠送jar包:quartz-2.3.2.jar; 赠送原API文档:quartz-2.3.2-javadoc.jar; 赠送源代码:quartz-2.3.2-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.2.pom; 包含翻译后的API文档:quartz-2.3.2-javadoc-API...
module ( 'myApp' , [ 'angular-cron-gen' ] ) 包括提供的JS和CSS文件(或创建自己CSS以覆盖默认值)。 < link rel =' stylesheet ' href =' build/cron-gen.min.css ' type =' text/css ' media =' all ' />...
quartz-all-1.6.1-RC3.jar
Spring中的Quartz配置-Spring-定时器-java定时器.doc
quartz-jobs-2.2.1-sources.jar 好东西,不解释
赠送jar包:quartz-2.3.2.jar; 赠送原API文档:quartz-2.3.2-javadoc.jar; 赠送源代码:quartz-2.3.2-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.2.pom; 包含翻译后的API文档:quartz-2.3.2-javadoc-API...
Quartz CronTrigger配置说明Quartz CronTrigger配置说明Quartz CronTrigger配置说明Quartz CronTrigger配置说明
该资源里面包含了Quartz-JOB-Framework 中文版和QUartz开发指南,而且QUartz开发指南带有书签。
赠送jar包:quartz-2.3.0.jar; 赠送原API文档:quartz-2.3.0-javadoc.jar; 赠送源代码:quartz-2.3.0-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.0.pom; 包含翻译后的API文档:quartz-2.3.0-javadoc-API...
内容提要:引入 Quartz CronTrigger 及简单使用 CronTrigger 来部署一个 Job 第五章. Cron 触发器及相关内容 (第二部分) 内容提要:详细介绍了 cron 表达式的格式和像 , - * ? / L W C # 特殊符号的使用 第五章. ...
石英制铁发电机 Quartz Cron Generator-为Quartz.NET库的cron调度程序生成cron表达式
赠送jar包:quartz-1.6.1.jar 赠送原API文档:quartz-1.6.1-javadoc.jar 包含翻译后的API文档:quartz-1.6.1-javadoc-API文档-中文(简体)-英语-对照版.zip 对应Maven信息:groupId:org.opensymphony.quartz,...
quartz-all-1.8.5.jar quartz-all-1.8.5.jar quartz-all-1.8.5.jar quartz-all-1.8.5.jar