第 5 课

Cron 调试流程

解析、校验、预览下次执行,并避免星期字段错误。

未经验证就上线 cron,团队往往要到备份在中午而非午夜跑时才发现。把调度当代码:解析、解释、预览

第一步:规范化表达式

  • 仅五字段(除非平台文档写明六字段)
  • 无多余空格;注释单独成行(crontab 里 # backup job,不要写在字段内)
  • 勿把 Quartz 的 ? 与 Unix cron 混用

粘贴到解析器,阅读 逐字段说明

第二步:阅读人类可读描述

好的描述应回答:

  • 哪些分、时触发?
  • 日与周是否同时受限——是否 OR 语义?
  • 这是「工作日上午」还是更复杂的组合?

若摘要与意图不符,部署前先改字段。

第三步:预览下次执行

在以下时区各生成至少 3–5 次 upcoming 时刻:

  • 平台实际执行时区
  • UTC(便于对日志与 Actions)

对照日历——尤其月末、夏令时切换、短月份。

第四步:对照平台文档

问题动作
GitHub Actions?默认 UTC
K8s CronJob?显式设置 timeZone
Linux crontab?查服务器 timedatectl
六字段引擎?翻译,勿盲拷

常见错误清单

错误现象
周日 7 vs 0 混淆星期 off-by-one
日+周同时设却期望 AND多触发
分钟字段 */60非法或空调度
本地 9 点写成 UTC Actions墙钟时刻错
长任务 + 短间隔执行重叠

第五步:写入运行手册

记录表达式、时区、平台、负责人与预期耗时。链到能证明上次成功的监控。

要点

解析 → 描述 → 预览 → 文档化。任一步与预期不符就停。Cron 的 bug 往往静默,直到财务问报表为何跑了两遍。

想动手练习时,可使用 DevCove 相关工具——可选,不属于本课正文。

打开相关工具

返回课程概览