概述
Quartz的CronTrigger 触发器支持定时任务在指定时间执行,并且还可以指定运行的频率,而控制CronTrigger 在什么时间执行,执行的频率是什么的设置方法就在cron表达式中。
cron表达式介绍
cron的表达式是字符串,实际上是由七子表达式,描述个别细节的时间表.
1.秒
2.分钟
3.小时
4.天(表示每月的第几天)
5.月
6.天(表示每星期的第几天)
7.年(可选字段)
再看下特殊符号:
“*” 代表整个时间段.
“/”:为特别单位,表示为“每”如“0/15”表示每隔15分钟执行一次,“0”表示为从“0”分开始, “3/20”表示表示每隔20分钟执行一次,“3”表示从第3分钟开始执行
“?”:表示每月的某一天,或第周的某一天
“L”:用于每月,或每周,表示为每月的最后一天,或每个月的最后星期几如“6L”表示“每月的最后一个星期五”
“W”:表示为最近工作日,如“15W”放在每月(day-of-month)字段上表示为“到本月15日最近的工作日”
“#”:是用来指定“的”每月第n个工作日,例 在每周(day-of-week)这个字段中内容为"6#3" or "FRI#3" 则表示“每月第三个星期五”
再看几个例子:
每隔5秒执行一次:*/5 * * * * ?
每隔1分钟执行一次:0 */1 * * * ?
每天23点执行一次:0 0 23 * * ?
每天凌晨1点执行一次:0 0 1 * * ?
每月1号凌晨1点执行一次:0 0 1 1 * ?
每月最后一天23点执行一次:0 0 23 L * ?
每周星期天凌晨1点实行一次:0 0 1 ? * L
在26分、29分、33分执行一次:0 26,29,33 * * * ?
每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
2017年11月0点开始,每2小时执行一次:0 0 0/2 7 11 ? 2017
总结
cron表达式还是比较容易理解与学习的。
了解规则与用法,就可以写出表达式了。这里推荐一个网站,可以用来测试cron表达式,或者在线生成cron表达式。
http://www.pdtools.net/tools/becron.jsp
参考文章:http://www.cnblogs.com/sunjie9606/archive/2012/03/15/2397626.html
http://blog.csdn.net/kkdelta/article/details/7238581