早上打開,同一篇文章有12篇
某天早上打開文章列表,發現同一個標題整齊地排了12筆。這是在 Mac mini 上執行的文章生成機器人,整個凌晨反覆做同一件事留下的痕跡。即使是非開發者團隊的小型排程任務,這種事也比想像中容易發生。
原因有兩個
逐行讀完日誌後,順序是這樣的:
1. 機器人成功生成文章並完成儲存。
2. 最後一步發送 Slack 通知時發生網路錯誤。
3. 機器人判定整個流程失敗,從頭重新開始。
4. 完成標記被設計在最後才寫入,所以每次都回到沒有標記的狀態。
也就是說,重試沒有上限,而且完成標記寫得太晚。
兩個修正方法
我這樣請 Claude Code 處理:「重試最多3次,文章一儲存完就先寫下完成標記。通知失敗只要另外記錄就好。」
最後加入的規則如下:
最大重試次數:3次
重試間隔:10分鐘
文章儲存後:先記錄完成標記
3次都失敗時:停止並在 Slack 發一行通知
結果
之後兩週,同一篇文章再也沒有出現第二次。通知失敗的日子有兩天,但文章只生成一次,只有通知會重新嘗試。
照著做的小技巧
• 排程任務一定要設定重試上限。
• 「儲存成果」與「發送通知」要拆成不同步驟。
• 完成標記不要放最後,要在核心成果產生後立刻寫下。
• 碰到上限時不要默默停止,用一行文字通知人。
機器人認真工作和重複做同一件事,只差一步。一行上限,就是那一步的差別。