早上打开网站一看
某个星期一早晨,同一篇文章在网站上出现了两次。标题和正文一模一样,只有发布时间差了四分钟。起初我怀疑是时钟走偏了,但罪魁祸首其实在别处。
原因是两个定时任务
我把原本在 Windows 设备上运行的定时任务迁到 Mac mini,只启用了新任务,却没有关掉旧任务,就这么简单。两个地方在同一时间做了同一件事。因为两边都运行正常,所以没有任何报错信息,反而更晚才发现。自动化在「变成两份」时,比在坏掉时更悄无声息地制造问题。
修复的三个做法
1. 发布前先确认「今天是不是已经有同标题的文章?」
2. 每篇文章用日期加主题生成一个短编号,遇到相同编号就跳过。
3. 把迁移清单的第一行改成「关掉旧任务」。
发布前检查
• 今天已有相同编号的文章 → 不发布,只留下日志
• 没有 → 发布
学到的事
• 与其要求「只能执行一次」,不如让它「执行两次也等于一次」,这样稳固得多。
• 搬家当天的清单,应先清理旧家,再设置新家。
• 日志里出现「已跳过」,不是失败,而是防线在起作用的信号。
重复的文章删掉一篇就结束了,但防止重复执行的那一行,现在已经加在所有定时任务上。