迁移之后每发一篇文章 编辑和运营各收到一封通知邮件 打开计划任务列表看同一条钩子挂了两次。日志里能对上时间点,这种反而好排。

旧库的 cron 数组整个导了过来 主题又在激活时注册了一遍同名钩子 两个时间戳不一样 WP-Cron 就按两条任务各跑一次 邮件自然翻倍。这一点先确认清楚,后面就不用反复试。

wp cron event list --fields=hook,next_run_relative
wp cron event delete publish_notify
wp cron event list | grep publish_notify

「定时任务重复」确认了原因之后,改动尽量只碰那一处,顺手改的东西后面最容易出问题。线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。

日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。

处理上按这个顺序:先把 cron 数组打印出来 看清同名钩子是不是挂了两条不同时间;用 wp cron event delete 把多余那一条删掉 同名钩子只保留最早注册的一条;主题里注册任务的地方加判断 已经存在就不再重复 schedule。

结果对不对很好判断,发一篇测试文章只收到一封通知 列表里同名钩子只剩一条。

作者 9823189