Spring Quarz:cronExpression 配置小结
完整格式
[秒] [分] [小时] [日] [月] [周] [年]
秒 | 分 | 小时 | 日 | 月 | 周 | 年 | |
---|---|---|---|---|---|---|---|
序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
是否必填 | 是 | 是 | 是 | 是 | 是 | 是 | 否 |
允许填写的值 | 0-59 | 0-59 | 0-23 | 1-31 | 1-12 or JAN-DEC | 1-7 or SUN-SAT | empty or 1970-2099 |
允许的通配符 | ,-*/ | ,-*/ | ,-*/ | ,-*?/LW | ,-*/ | ,-*?/L# | ,-*/ |
周位置上的的英文字母不区分大小写,即MON与mon相同。
通配符使用
* 所有值。如每一分钟都触发,“分”位置:“*”。
? 不指定值,不关心的值。如每月10号触发,但不关心是周几,“周”位置:“?”。
- 区间。如10点到12点触发,“小时”位置:“10-12”。
, 多个值。如周一、周三、周五触发,“周”位置:“MON,WED,FRI”。
/ 递增触发。如从第5s开始,每增5s触发一次,“秒”位置:“5/15”。
“月”位置,1/3 表示每月1号开始,每隔三天触发一次;
L 最后。
“日”位置:当月最后一天(依据当前月份,如果是二月还会依据是否是润年);
“周”位置:星期六(相当于"7"或"SAT");
“L”前加数字:该数据的最后一个,如“周”位置:6L 表示本月最后一个周五;
W 离指定日期最近的那个工作日(周一至周五)。
“日”位置:15W 表示离每月15号最近的那个工作日,如果15号正好是周六,则找最近的周五(14号)触发, 如果15号是周未,则找最近的下周一(16号)触发。如果15号正好在工作日(周一至周五),则就在该天触发。
注,"W"前只能设置具体的数字,不允许区间"-"。
#序号,表示每月的第几个周几。
“周”位置:6#3 表示每月第三个周六;6#5 如果第五周没有周六则不触发;
'L'和 'W'可以一组合使用:
“日”位置:LW 表示本月最后一个工作日触发;
具体举例:
0 0 12 * * ? 每天12点触发
0 0 12 ? * * 每天12点触发
0 0 12 * * ? * 每天12点触发
0 * 14 * * ? 每天 14:00 ~ 14:59 ,每分触发
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,每分触发
0 10,44 14 ? 3 WED 3月份的每周三下午 2:10 和 2:44 触发
0 15 10 ? * MON-FRI 周一到周五,每天 10:15 触发
0 30 14 15 * ? 每月15号 14:30 触发(发工资)
0 15 10 L * ? 每月最后一天的 10:15 触发
0 15 10 ? * 6L 每月最后一周的星期五 10:15 触发
0 15 10 ? * 6#3 每月第三周的星期五, 10:15 触发
0 0 0 1/5 * ? 每月第一天开始每隔5天触发一次
0 11 11 11 11 ? 每年11月11号 11:11 触发(光棍节)