cron 表达式学习

126 阅读2分钟

cron 表达式

概念

Cron 表达式是一个指定定时任务执行时间的字符串表达式,由六或七个空格分隔的时间字段组成。
分别是:秒、分、时、日、月、星期,以及可选的年份。

时间字段

  1. :0-59
  2. :0-59
  3. :0-23
  4. :1-31
  5. :1-12 或 JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV and DEC 英文缩写
  6. 星期:1-7 (1是星期天) 或者 SUN, MON, TUE, WED, THU, FRI, SAT
  7. (可选) 年份:留空表示每年都执行,或者具体年份

特殊字符

  • *: 匹配任意值,例如在分钟字段使用表示每分钟都执行
  • ,: 用于分隔多个值,例如在星期字段使用 2,4 表示周二和周四执行
  • /: 用于指定时间间隔,例如在小时字段使用 2/3 表示每3小时执行一次,从2点开始
  • -: 用于指定范围,例如在日字段使用 1-3 表示从第1天到第3天
  • ?: 仅在日期和星期字段中使用,表示不指定值,通常用于避免冲突,比如每个月的第20天,不管第20天是星期几
  • L: 仅在日期和星期字段中使用,表示最后一个,或者每个月的最后一个星期几
  • W: 仅在日期字段中使用,表示为最近工作日(周一至周五),如“15W”放在每月(day-of-month)字段上表示为“到本月15日最近的工作日”,如果15这天是周六,则14号就触发,否则15号触发
  • #: 仅在星期字段中使用,表示第几个星期几(例如6#3表示每月的第三个周六)

Cron 表达式的例子

每分钟的第30秒执行一次

30 * * * * *

每天凌晨1点执行

0 0 1 * * *

每月的第一天和第十五天的中午12点执行

0 0 12 1,15 * *

参考文献

  1. www.pppet.net/jiaocheng.h…