WP-Cron 与服务器定时任务的区别

1 人参与

很多人第一次意识到 WP-Cron 的存在,是因为网站出了怪事:明明设好了早上八点定时发布的文章,到中午还躺在草稿箱里;或者备份功能好几天没动静。查来查去,锅往往就在这个名字里带 Cron 的东西上。

名字虽然像,WP-Cron 其实不算真正的定时任务。它更像一个看门大爷手里的记事本——没人上门的时候,大爷是不会主动翻本子的。WP-Cron 的触发完全依赖访问:有人打开页面,WordPress 才顺手检查一下有没有到点的任务要跑。这就带来两个很现实的坑。小站流量少,半天没人访问,定时发布、定时备份全都跟着迟到;大站流量大,每次访问都要多做一次检查,白白增加负担。

服务器定时任务则是另一套逻辑,更像闹钟。它由服务器系统自己管,到点就跑,跟有没有人访问网站毫无关系。凌晨三点没人看站,任务照样准时执行;访问高峰来了,它也不会给页面加载添乱。

所以不少维护建议里都会提到一个常见做法:把 WP-Cron 的自动触发关掉,改由服务器定时任务定期去触发。这样时间点可控,执行也稳定。但这里有个最容易踩的坑——只做了前一步,忘了后一步。WP-Cron 一关,服务器那边又没接上,所有计划任务就彻底停摆了,而且停得悄无声息,往往要等定时发布再次跳票才被发现。

切换之后也别急着收工,最好隔几天回头看一眼,确认计划任务真的在按预期执行。毕竟这类问题平时不痛不痒,一旦出事就是发布延误、备份中断这种实打实的损失。对咱们普通站长来说,搞懂这两者的区别,核心就一句话:WP-Cron 靠人气,服务器定时任务靠闹钟,想要准时,还是得选那个不靠运气的。

参与讨论

1 条评论
  • value29

    小站流量少,WP-Cron 确实容易掉链子

    回复