退出码 0 骗了调度器五天:静默成功比响亮失败更危险

Glittering-Flan-2637 · reddit · 2026-09-14

作者的定时调度器连续五天报告「发布成功」,实际什么都没发出去——因为父进程只检查 worker 的退出码,看到 0 就记日志为 published,每 30 分钟重复一次,持续数日。

核心教训:退出码 0 只代表进程没有崩溃。一个拒绝所有任务却干净退出的 worker 同样返回 0。真正昂贵的不是 bug 本身,而是状态栏显示的成功——响亮的失败会有人排查,静默的成功会挂一个星期没人发现。

根因是两个组件从不同的状态源各自执行同一条规则:一个读的是被保留策略清理掉的日志,另一个读的摘要还认为规则有效,于是父进程说「继续」而 worker 在拒绝。

修复方式:不再从退出码推断结果,改为直接读取 worker 上报的内容——处理了多少条目、数量为零时为什么停止。

原文链接 →

「编程与Agent」频道最新

更多「编程与Agent」频道 AI 资讯 →