故障表现
设置了上午九点发布,实际十点多才出现在前台,间隔还不固定。
问题出在哪
内置定时任务依赖访客访问触发,低流量站点没人访问就不会执行。判断时先分清是 WP-Cron 不准时 本身的配置问题,还是上游调用、运行环境带进来的差异;前者改配置就能收口,后者要沿着请求链路一层层往上找,处理顺序不能颠倒。先在出问题的机器上复现一次,把报错原文和发生时间记下来,再对着日志定位。
按这个顺序处理
- 改为服务器系统级定时任务
- 关闭内置触发
- 确认任务执行日志
对应的命令或配置片段如下,可直接复制:
define('DISABLE_WP_CRON', true);
# crontab
*/5 * * * * curl -s https://example.com/wp-cron.php?doing_wp_cron >/dev/null
改完只在一台机器上验证不够,至少从外网和移动网络各试一次,才能确认不是本地缓存造成的假象。不要一次改多个参数,每次只动一处并记录下来,否则现象变了也说不清是哪个改动起的作用。
怎么确认改好了
文章在设定时间五分钟内准时发布。