前言:接触过 Linux 的朋友对Cron表达式应该不会陌生,在 Linux 操作系统下要写个自动化脚本就会用到这个表达式。
Spring 实现定时服务或计划任务的时候也需要用到 Quartz 的 Cron表达式 ,因此在做 Spring计划任务之前,需要掌握一些Cron的知识。
Quartz官方下载地址:http://quartz-scheduler.org/downloads/catalog?activated=true
我下载使用的是 2.0.2 版本,本篇文章参考的是官网帮助文档的 Cron表达式 ,英文在线帮助文档的,有兴趣的可以前往:
Cron expressions:http://quartz-scheduler.org/documentation/quartz-2.x/tutorials/crontrigger
下面是官方对 Cron表达式的说明:
摘要:A cron expression is a string comprised of 6 or 7 fields separated by white space.
一个 Cron表达式是由6或7个字段(年字段是可选字段)的字符串组成,字段与字段之间用空格来隔开。
上面的表格已经详细的列出了每个字段能使用的匹配符和每个字段的有效取值范围,看一下就很明白了,这里就不再列出。
Cron表达式使用格式:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->Seconds Minutes Hours DayofMonth Month DayofWeek [Year]
秒 分 时 天 月 周 [年]
秒 分 时 天 月 周 [年]
文档上对每个符号代表的什么含义都解释的很清楚了,下面来整理一下
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->* :匹配该域的任意值;如*用在分所在的域,表示每分钟都会触发事件
? :匹配该域的任意值
- :匹配一个特定的范围值;如时所在的域的值是10-12,表示10、11、12点的时候会触发事件
, :匹配多个指定的值;如周所在的域的值是2,4,6,表示在周一、周三、周五就会触发事件(1表示周日,2表示周一,3表示周二,以此类推,7表示周六)
/ :左边是开始触发时间,右边是每隔固定时间触发一次事件,如秒所在的域的值是5/15,表示5秒、20秒、35秒、50秒的时候都触发一次事件
L :last,最后的意思,如果是用在天这个域,表示月的最后一天,如果是用在周所在的域,如6L,表示某个月最后一个周五
W:weekday,工作日的意思。如天所在的域的值是15W,表示本月15日最近的工作日,如果15日是周六,触发器将触发上14日周五。如果15日是周日,
触发器将触发16日周一。如果15日不是周六或周日,而是周一至周五的某一个,那么它就在15日当天触发事件
#:用来指定每个月的第几个星期几,如6#3表示某个月的第三个星期五
? :匹配该域的任意值
- :匹配一个特定的范围值;如时所在的域的值是10-12,表示10、11、12点的时候会触发事件
, :匹配多个指定的值;如周所在的域的值是2,4,6,表示在周一、周三、周五就会触发事件(1表示周日,2表示周一,3表示周二,以此类推,7表示周六)
/ :左边是开始触发时间,右边是每隔固定时间触发一次事件,如秒所在的域的值是5/15,表示5秒、20秒、35秒、50秒的时候都触发一次事件
L :last,最后的意思,如果是用在天这个域,表示月的最后一天,如果是用在周所在的域,如6L,表示某个月最后一个周五
W:weekday,工作日的意思。如天所在的域的值是15W,表示本月15日最近的工作日,如果15日是周六,触发器将触发上14日周五。如果15日是周日,
触发器将触发16日周一。如果15日不是周六或周日,而是周一至周五的某一个,那么它就在15日当天触发事件
#:用来指定每个月的第几个星期几,如6#3表示某个月的第三个星期五
官方文档给出的例子及解释:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->"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点开始触发,每分钟触发一次,14:59分结束
"0 0/5 14 * * ?" 每天14点开始触发到14:59分结束的每5分钟触发一次事件
"0 0/5 14,18 * * ?" 每天14点开始到14:59期间和18点到18:59期间的每5分钟触发一次事件
"0 0-5 14 * * ?" 每天14点到14:05期间的每1分钟触发一次事件
"0 10,44 14 ? 3 WED" 每年3月的星期三的14:10和14:44触发一次事件
"0 15 10 ? * MON-FRI" 周一至周五的10:15触发一次事件
"0 15 10 15 * ?" 每月15日10:15触发一次事件
"0 15 10 L * ?" 每月最后一日的10:15触发一次事件
"0 15 10 ? * 6L" 每月的最后一个星期五10:15触发一次事件
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五10:15触发一次事件
"0 15 10 ? * 6#3" 每月的第三个星期五10:15触发一次事件
"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点开始触发,每分钟触发一次,14:59分结束
"0 0/5 14 * * ?" 每天14点开始触发到14:59分结束的每5分钟触发一次事件
"0 0/5 14,18 * * ?" 每天14点开始到14:59期间和18点到18:59期间的每5分钟触发一次事件
"0 0-5 14 * * ?" 每天14点到14:05期间的每1分钟触发一次事件
"0 10,44 14 ? 3 WED" 每年3月的星期三的14:10和14:44触发一次事件
"0 15 10 ? * MON-FRI" 周一至周五的10:15触发一次事件
"0 15 10 15 * ?" 每月15日10:15触发一次事件
"0 15 10 L * ?" 每月最后一日的10:15触发一次事件
"0 15 10 ? * 6L" 每月的最后一个星期五10:15触发一次事件
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五10:15触发一次事件
"0 15 10 ? * 6#3" 每月的第三个星期五10:15触发一次事件
相关推荐
cmd中运行 ”javar -jar 文件名 “ ,生成可视化窗口,方便 生成和解析Cron;从此怕忘记,再也不求人。
Quartz Cron表达式
超好用quartz cron表达式html,可直接嵌入项目工程。不用自己再去冥思苦想怎么拼装表达式了。
Quartz定时器在使用时,需要Cron表达式,但是人为去写需要对表达式的规则足够了解,但有了该表达式生成器只需要选择对应的“执行”时间就可以快速生成符合你要求的表达式啦。 vs2012编写的
quartz cron表达式 使用jquery,Bootstrap实现,可集成到自己的项目中,
Quartz Cron表达式生成器这个是一个用于前端生成Cron表达式的一个js
初学之家(http://www.g2room.com)Cron表达式在线生成器,可方便快捷的生成quartz的cron表达式,及对cron表达式进行解析,提供把Quartz的cron表达式解析执行,展示前10次执行时间。
quartz cron表达式 实例及源码
Quartz定时器在使用时,需要Cron表达式,但是人为去写需要对表达式的规则足够了解,但有了该表达式生成器只需要选择对应的“执行”时间就可以快速生成符合你要求的表达式啦。
Quartz Cron 表达式生成工具,可以在线编辑,反解析等,html实现,方便引用到各种语言框架的web项目当中,解压即用
Quartz的cron表达式。 Spring 定时任务@Scheduled cron表达式详解
quartz的作业调度触发Cron表达式说明
Cron表达式生成器 通过这个生成器,您可以在线生成任务调度比如Quartz的Cron表达式,对Quartz Cron 表达式的可视化双向解析和生成
Quartz.Net Cron表达式生成器winform版 最近使用Quartz.net做了几个同步任务,感觉非常好。表达式设置也是非常灵活,但是新入手发现对表达式不熟,每次都要使用在线生成器。 于是写了一个winform版本的生成器...
quartz的cron表达式生成工具,quartz的cron表达式生成工具,解压后运行jar包即可
这可能是网上最完整的Cron表达式解析翻译方法。 Java版-解释翻译Cron表达式(代码奉上)。 此方法分为JavaScript版和Java版本,有需要的朋友请根据自己需要下载。 希望我写的方法有帮助到你,不足之处请多多指教。
Quartz cron表达式帮助文档 举例解释corn表达式
.NET-Quartz-Cron-Parser Quartz Cron 表达式转换为中文自然语言的查询工具, 使用C#作为语言开发