禁用WP-Cron后任务如何准时执行?
WordPress / 服务器维护实战清单:禁用WP-Cron后的触发怎么做更稳
禁用 WP-Cron 之后,任务能否准时执行,取决于一个前提是否被真正理解:WP-Cron 不是操作系统意义上的定时器,而是依附于页面访问的伪队列。有请求到达时,WordPress 才顺带检查并执行到期任务。这带来两组对称的问题——低流量站点的定时发布会因无人访问而明显延迟,高流量站点则在每次请求中重复付出队列检查的开销。禁用它的意义,在于把触发权从"有没有人来"交还给"时间到了没有"。
接管触发的标准做法,是把这一职责移交给服务器系统层面的计划任务。它按固定周期被系统唤醒,与站点访问量完全无关,触发时刻因此是可预期的。配置时让它周期性请求站点的 cron 入口,或以命令行方式直接驱动队列执行;周期间隔应参照站点上时效最敏感的任务来确定——有定时发布需求的,间隔不能超出发布粒度的容忍范围;只有更新检查、缓存清理这类低频任务的,间隔可以适当放宽。过密空耗资源,过疏则让"准时"名存实亡。
配置之后必须验证的两件事
其一是触发是否真正到达。请求若被防火墙、访问控制或缓存层拦截,计划任务本身照常运行,队列却从未被执行,故障表现为任务无声错过且没有任何报错。验证方式很直接:安排一个几分钟后的测试任务,观察它是否按点完成。其二是执行是否重叠。队列积压较多时,上一轮尚未结束下一轮又被触发,可能造成重复执行或资源争抢,必要时应通过互斥机制或调整间隔规避。
纳入巡检,而非一次性配置
与所有涉及站点配置的变更一样,改动前应记录原始状态与回滚方式,改动后应把"定时任务是否按点执行"写入固定巡检项。只禁用、不接管,或接管后不再复查,是这类改造最常见的两种失败形态:前者让任务彻底停摆,后者让停摆在某次服务器调整后悄然发生而无人察觉。
准时执行的本质不是某一条配置,而是"可靠触发加可验证执行"的闭环。触发交给系统层解决确定性,验证交给巡检解决持续性,两者缺一,禁用 WP-Cron 就只是把不确定换了一种形式。

参与讨论
我站点流量太小,真的遇到定时发布延迟了。