Cron调度的语法规则
Cron语法规则
不同位数的Cron
- 五位:Minutes Hours DayofMonth Month DayofWeek
- 六位:Seconds Minutes Hours DayofMonth Month DayofWeek
- 七位:Seconds Minutes Hours DayofMonth Month DayofWeek Year
基本语法
- * 表示所有值;
- ? 表示未说明的值,即不关心它为何值;
- - 表示一个指定的范围;
- , 表示附加一个可能值;
- / 符号前表示开始时间,符号后表示每次递增的值;
- Cron支持配置星期缩写 SUN MON TUE WED THU FRI SAT
- Cron星期对应值,SAN是第一天:1;SAT为最后一天:7
- L 表示最后(last):
- 用在DayofMonth:这个月的最后一天;
- 用在DayofWeek:这周的最后一天,就是7或者SAT;
- W 表示工作日(weekday),只能用在字段DayofMonth:用来描叙最接近指定天的工作日;用“15W”指“最接近这个 月第15天的工作日”,即如果这个月第15天是周六,那么触发器将会在这个月第14天即周五触发;如果这个月第15天是周日,那么触发器将会在这个月第 16天即周一触发;如果这个月第15天是周二,那么就在触发器这天触发。
- # 只能用在DayofWeek:"6#3"指这个月第3个周五
- 每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符;
- "DayofMonth"和"DayofWeek*"这两个元素互斥的:如果设置了这个月几号,就不能设置星期几,反之也是这样,在一个设置为具体数的时候必须要对其中一个设置?
常用的Cron句型
以五位的Cron为例:
0 10,16 * * *
:每天上午10点,下午4点*/5 * * * *
:每隔5分钟0 1 ? * L
:每周星期天凌晨1点15 10 ? * 6#3
:每月的第三个星期五上午10:15