WordPress的有个进程专门用来在将来的某个时间点执行特定任务,例如发布某篇文章,通过Backwpup全自动备份WordPress博客到Dropbox,这个功能的WordPress是通过WP-的Cron实现的。

探讨WordPress的定时功能WP-Cron

很不错的功能,但是也带来了一系列的问题。

什么是Cron?

Cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。 Cron同时也是一个守护进程, 意思是会一直在后台运行。

什么是wp-cron.php?

这个文件包含了一些php脚本, 会执行所以定时任务, 例如:

定时发布文章

定时检查垃圾评论(前提是你开启了Akisment)

发送邮件(需要设置好评论设置)

wp-cron.php只是wordpress自动化机制的一部分.

为什么说wp-cron.php会造成问题?

如果你在firebug下查看的话, 就会发现, wp-cron.php在每次页面加载时都会被调用, 比方说你的网站每小时有30个访客, 每人查看2-3个页面, 看看wp-cron.php被调用了多少次:

30×2.5=75 次/小时

75×24=1800次/天

1800×30=54000次/月

后果是什么自然不用多说, 这不仅会影响你自己的网站, 整个服务器上的其他网站都会受到影响, 整个服务器的性能降低。 问题还远不止这些, 另外比如定时发布的文章没有自动发布, 或者定时功能完全没有生效等. 从wordpress版本3.X以来, ​​这些问题已经慢慢减少了, 但是依然还是存在的.

怎么解决问题?

让我们来禁用这个无用的功能, 来减少CPU占用, 降低服务器负载.
在wp-config.php中插入下面的代码就可以禁用掉:

  1. define('DISABLE_WP_CRON', true);

然后我们来使用linux下真正的Cron功能吧。

PS:cPanel和Directadmin面板的Cron设置方法都很简单,不用教了吧。