define( 'DISABLE_WP_CRON', true );
# crontab: * * * * * wp cron event run --due-now --path=/var/www/site

后台点了立即发布,前台十分钟都没出现,服务器访问量低的时候要等半小时,紧急停服公告每次都得手动刷一次首页才生效。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,发布动作挂在 wp_schedule_single_event 上,WP-Cron 只在有访问时触发,低流量时段任务一直排队。对象缓存里还留着上一版公告列表。

这次卡住的地方就在「紧急公告推送延迟」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。

一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。

处理上按这个顺序:紧急公告改走同步发布,不进定时队列;在 wp-config.php 关掉默认 cron,改用系统 crontab 每分钟跑一次;发布后清一次公告缓存键,再打开隐身窗口确认。

改完只确认一件事:点发布后十秒内前台可见,低峰时段也不再延迟。

作者 9823189