返回文章列表

文章

关于5位 vs 7位的Cron表达式

目录
  1. 1. Cron 表达式长度
  2. 2. 你的两个表达式
  3. 表达式 A
  4. 表达式 B
  5. 3. 核心区别
  6. 4. 总结规则上的区别

1. Cron 表达式长度#

类型位数含义
标准 Unix Cron5 位分 小时 日 月 星期
Linux 扩展 Cron (Quartz / Node-Cron /一些库)6-7 位常见 6 位:秒 分 小时 日 月 星期,7 位可能加年份:秒 分 小时 日 月 星期 年

2. 你的两个表达式#

表达式 A#

0 8-23/2 * * * * *
  • 7 位:秒 分 小时 日 月 星期 年(假设是 Quartz 风格)
  • 含义:
    1. 0 → 秒,表示整秒触发
    2. 8-23/2 → 小时,每隔 2 小时,8~23 点
    3. → 日
    4. → 月
    5. → 星期
    6. → 年
  • 执行时间:每天 08:00, 10:00, 12:00, 14:00, 16:00, 18:00, 20:00, 22:00, 24:00(23 点)

表达式 B#

*/20 0-17,22,23 * * *
  • 5 位:分 小时 日 月 星期(标准 Unix Cron)
  • 含义:
    1. /20 → 每 20 分钟执行一次
    2. 0-17,22,23 → 小时:0~17 点,以及 22、23 点
    3. → 日
    4. → 月
    5. → 星期
  • 执行时间:每天 0:00,0:20,0:40,1:00,1:20,...17:40,22:00,22:20,22:40,23:00,23:20,23:40

3. 核心区别#

特性表达式 A表达式 B
位数7 位(秒位在前)5 位(没有秒位)
精度精确到秒精确到分钟
执行频率每 2 小时一次每 20 分钟一次(部分小时)
可控性秒可指定秒固定为 0
小时范围8~23 点0~17、22、23 点
使用场景Quartz/支持秒的调度Unix Cron / Linux 系统任务

4. 总结规则上的区别#

  1. 位数不同 → 精度不同
    • 7 位 cron 可以指定秒(更精确)
    • 5 位 cron 精度到分钟
  2. 语法支持不同
    • 7 位通常用于 Quartz 或 Node-Cron 等库
    • 5 位用于 Unix/Linux 系统 cron
  3. 执行频率和小时控制方式不同
    • A 用 /2 表示间隔
    • B 用 /20 + 小时列表表示间隔执行