Quartz之cron表达式详解
前言cron expression
使用过 Quartz
定时调度框架的都知道常用的有两种触发器。 SimpleTrigger
和 CronTrigger
, 本章的主角 CronTrigger
通过 cron表达式
来设置什么时候触发任务。
表达式格式
crontab
命令常见于 Unix
和 类Unix
的操作系统之中,用于设置周期性被执行的指令。 CronTrigger
使用的就是 cron表达式
。
格式:[秒] [分] [时] [日] [月] [周] [年]
共7个子表达式, 用空格隔开。
字段 | 是否必填 | 允许值 | 允许的特殊字符 |
---|---|---|---|
秒 | 是 | 0~59 | ,-*/ |
分 | 是 | 0~59 | ,-*/ |
时 | 是 | 0~23 | ,-*/ |
日 | 是 | 1~31 | ,-*?/LWC |
月 | 是 | 1~12或者JAN-DEC | ,-*/ |
周 | 是 | 1~7或者SUN-SAT | ,-*?/LC# |
年 | 否 | empty,1970~2099 | ,-*/ |
特殊字符
- “?”字符:表示不确定的值
- “,”字符:指定数个值
- “-“字符:指定一个值的范围
- “/“字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m
- “L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X
- “W”字符:指定离给定日期最近的工作日(周一到周五)
- “#”字符:表示该月第几个周X。6#3表示该月第3个周五
实例
- 每天10点15分:
0 15 10 ? * *
- 每天下午的2点到2点59分(整点开始, 每隔5分触发):
0 0/5 14 * * ?
- 周一到周五每天上午的10点15分:
0 15 10 ? * MON-FRI
- 每月的第三周的星期五:
0 15 10 ? * 6#3
- 2016年到2017年每月最后一周的星期五的10点15分:
0 15 10 ? * 6L 2016-2017