任务队列卡死两天:只设 pending/done 两状态的教训
Kodenstudio · reddit · 2026-10-14
作者分享了一个代价两天的工程教训:他的任务队列只有 pending 和 done 两个状态。一个 worker 在任务中途崩溃后,没有任何机制把该行状态翻转,下一个 worker 反复拾取同一个「毒任务」并再次崩溃,整个队列静默卡死,而仪表盘看起来一切正常,两天后才被发现。
修复方案很轻量:不再信任单一状态标志,改为给每个任务加租约(lease)——认领时打上 expiresat 时间戳,工作期间持续心跳(heartbeat),由一个简单的 reaper 进程定期把过期租约的任务回收回池子。
作者感慨:「花两小时就建好了,却花了两天才意识到需要它。」并在评论区询问大家是在状态列之上加租约,还是完全跳过状态机。
「编程与Agent」频道最新
- 10 个 GitHub 仓库揭秘 Cursor/Claude 等工具系统提示词,最高 17 万星 — victor_explore · 2026-10-14
- Dimillian 发长文:用 Codex 打造跨 Mac/iPhone/Web 游戏 Dark Veil — Dimillian · 2026-10-14
- 让 Agent 学会预知失败:结局导向置信校准 AUROC 达 0.85 — SAP · 2026-10-14
- 工程师提醒:过时代码注释是 agent 陷阱,删掉大部分更好 — weswinder · 2026-10-14
- CMU 论文:Agent 违规日志几乎无法举证,结构化记录可提升至 83% — rohanpaul_ai · 2026-10-14
- Gemini 4 Argon 实操:服务端后台执行跑长推理,输出可达 26 万 token — rseroter · 2026-10-14