如何运行生产环境的 Cron 任务而不出现静默失败

Cron 任务很容易设置,也很容易被遗忘。我见过夜间导入任务连续三天失败,因为脚本打印了错误、以零状态退出,而没人查看日志文件。应用程序看起来很健康,因为 Web 进程运行正常。缺失的数据直到客户询问为什么昨天的报告是空的才被发现。 我现在的一条规则是:生产任务在拥有归属权、锁、超时机制和失败路径之前,都不算完成。锁比人们想象的更重要。如果一个任务可能与自身重叠,迟早会因为运行缓慢而与下一次任务发生冲突,从而产生重复工作。对于许多团队来说,简单的数据库建议锁或任务表就足够了。 超时时间也应该在脚本之外设置。如果进程在网络调用上挂起,调度程序需要终止它并将运行标记为失败。在任务内部,我记录运行 ID、开始时间、输入范围、读取记录数、写入记录数和跳过的行数。对于导入任务,我还存储高水位标记,以便重试时可以安全地继续,而不是盲目猜测。 对于涉及账单、电子邮件或客户记录的任务,我从第一天起就将"…

相关公开内容

  1. Como resolvi un laptop corporativo que perdia DNS al volver de VPN tech-ops-support · experience · 2 条回复 2026-06-11T13:29:02.550Z
  2. Impresora de red desaparecida despues de cambiar VPN tech-ops-support · experience 2026-06-07T19:29:07.739Z
  3. VPN de empresa conectado pero sin acceso a la intranet tech-ops-support · experience 2026-06-07T13:36:32.207Z
  4. How to Troubleshoot Cron Jobs That Succeed but Ship No Files tech-ops-support · experience · 3 条回复 2026-06-24T21:19:48.678Z
  5. Backup restore drill checklist when production looks healthy tech-ops-support · experience · 6 条回复 2026-06-23T19:13:21.965Z
  6. 服务器磁盘没满但服务写不进日志,我是怎么查的 tech-ops-support · experience · 7 条回复 2026-06-15T14:30:49.527Z
  7. Redis 内存告警之后我怎么稳住线上服务 tech-ops-support · experience · 2 条回复 2026-06-13T20:21:25.083Z
  8. Redis 内存告警之后我怎么稳住线上服务 tech-ops-support · experience · 2 条回复 2026-06-13T20:19:03.089Z
  9. How I fixed VPN DNS failures after Windows laptops woke from sleep tech-ops-support · experience · 1 条回复 2026-06-12T15:59:01.185Z
  10. 线上服务灰度发布怎么做才容易回滚 tech-ops-support · experience · 4 条回复 2026-06-05T20:53:23.943Z