早上打开,同一篇文章有12篇
某天早上打开文章列表,发现同一个标题整整齐齐排了12条。这是在 Mac mini 上运行的文章生成机器人,整个凌晨反复做同一件事留下的痕迹。即使是非开发者团队的小型定时任务,这种事也比想象中容易发生。
原因有两个
逐行读完日志后,顺序是这样的:
1. 机器人成功生成文章并完成保存。
2. 最后一步发送 Slack 通知时出现网络错误。
3. 机器人判定整个流程失败,从头重新开始。
4. 完成标记被设计在最后才写入,所以每次都回到没有标记的状态。
也就是说,重试没有上限,而且完成标记写得太晚。
两个修复方法
我这样请 Claude Code 处理:「重试最多3次,文章一保存完就先写下完成标记。通知失败只需要另外记录。」
最终加入的规则如下:
最大重试次数:3次
重试间隔:10分钟
文章保存后:先记录完成标记
3次都失败时:停止并在 Slack 发一行通知
结果
之后两周,同一篇文章再也没有出现第二次。通知失败的日子有两天,但文章只生成了一次,只有通知会重新尝试。
照着做的小技巧
• 定时任务一定要设置重试上限。
• 「保存成果」和「发送通知」要拆成不同步骤。
• 完成标记不要放在最后,要在核心成果产生后立刻写下。
• 碰到上限时不要悄悄停止,用一行文字通知人。
机器人认真工作和重复做同一件事,只差一步。一行上限,就是这一步的差别。