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
posted @ 2020-11-18 10:14  KpHang  阅读(125)  评论(0编辑  收藏  举报