ENGINEERING PLAYBOOK

Cron 表达式字段与执行环境

Cron 表达式描述调度时间,不保证任务一定成功。不同实现对特殊字符、时区和夏令时处理可能不同,因此必须先确认实际使用的调度器。

适用人群:需要审查周期任务语义、月末边界和重复执行风险的后端开发人员

排查路径

  1. 确认实现是 cronie、systemd timer、Kubernetes CronJob 或云调度器。
  2. 逐字段解释分钟、小时、日、月、星期。
  3. 检查时区和夏令时切换。
  4. 把调度成功与任务执行成功分别监控。

执行步骤

  1. 用绝对路径调用命令和文件。
  2. 显式设置必要环境变量与工作目录。
  3. 把标准输出和错误写入可轮转日志。
  4. 先在测试环境缩短周期验证。
  5. 为任务加锁避免前一次未结束又启动。

可复制命令与示例

每天凌晨两点

0 2 * * * /usr/local/bin/job

工作日每十五分钟

*/15 * * * 1-5 /usr/local/bin/check

可复现任务记录

具体错误或任务

每日 02:00 任务在夏令时切换或进程重启后出现漏跑、重复跑。

失败信号:同一业务日期出现两个执行标识,或预期窗口没有任何完成记录。

最小输入

表达式 0 2 * * *、调度器实现、时区、幂等键和最近三次执行记录。

验证命令或步骤

crontab -l | sed -n '/0 2 \* \* \*/p'

预期输出

只出现一条目标任务;每次执行使用唯一业务日期作为幂等键。

失败输出

重复配置、多时区解释,或任务仅依赖进程内存判断是否执行。

成功判据

在时区、重启和重试场景下,同一业务日期最多产生一次有效结果,并保留失败记录。

本任务常见错误

  • 把自然语言时间直接套进表达式
  • 忽略月末和夏令时边界
  • 没有幂等键与补偿路径

资料与适用边界

表达式含义依据目标 crontab 实现;补跑、并发和时区行为属于调度平台自身能力,需单独验证。

证据块复核日期:2026-09-04

相关站内页面

资料依据与复核边界

资料复核日期:2026-08-29