CRON作业用于在您的WordPress网站上定期安排固定时间、日期或间隔的任务。WordPress cron作业的一些示例可能涉及安排要发布的帖子、检查更新或按预定义计划运行的备份插件。
在WordPress中,这是由WP-Cron处理的 ,它用于模拟系统cron。但是,根据您网站的流量,使用内置的cron处理程序实际上会开始影响您的页面加载时间。因此,今天我们将向您展示如何禁用WP-Cron ( wp-cron.php
) 并改为使用系统cron以获得更快的性能。
- WP-Cron的性能问题
- 如何禁用WP-Cron
- 如何调度系统Cron
WP-Cron的性能问题
WordPress内置的Cron处理程序WP-Cron存在很多性能问题。首先,重要的是要了解WP-Cron不是真正的cron工作,它只是WordPress为模仿系统cron所做的工作而创建的。
WP-Cron不会连续运行。默认情况下,wp-cron.php
每次加载页面时都会触发,这在高流量站点上可能会导致问题。如果一个站点没有足够的PHP workers,有时会有一个请求进来,WordPress会产生cron,但是cron必须等待worker,因此只是坐在那里。
相反的情况也是如此。如果一个网站没有很多流量,由于没有人加载页面,可能会错过时间表。
更好的方法是禁用WP-Cron并改用系统cron。这按预定义的时间表运行,甚至在官方插件手册中也有推荐 。
如何禁用WP-Cron
要禁用WP-Cron,请将以下内容添加到您的 wp-config.php
文件中,就在“That’s all, stop editing! Happy blogging。” 注意:这会禁用它在页面加载时运行,而不是当您直接通过wp-cron.php
.
define('DISABLE_WP_CRON', true);
禁用WP-Cron
如何调度系统Cron
然后,您将需要wp-cron.php
从您的服务器进行安排。
如果您的站点是多站点,则您需要执行一些额外的设置步骤,以便为您的子站点运行cron作业。以下是我们可以为此推荐的一些资源:
- 使用WP CLI在多站点网络上运行Cron作业
- 在多站点实例上运行WordPress cron
对于单站点WordPress,建议您查看正确设置WordPress Cron作业以了解如何设置系统 cron。
在cPanel中创建Cron作业
如果您使用带有cPanel的主机,您还可以从其控制面板创建系统cron。注意:确保首先禁用上面的默认WP-Cron。
第1步
登录到cPanel。在高级部分中,单击Cron作业。
cPanel定时任务
第2步
在Add New Cron Job部分下,您可以从许多不同的预定义计划中进行选择,例如每小时两次或每周一次。您的托管服务提供商很可能对允许运行cron作业的频率有限制。每小时两次是共享主机的常见设置。
cPanel cron作业设置
第3步
添加以下命令。替换https://domain.com
为您的域名。根据您的主机配置方式,此命令可能略有不同。然后单击“Add New Cron Job”。
wget -q -O - https://domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
cPanel添加新的cron作业
>/dev/null 2>&1
上述命令的 一部分禁用电子邮件通知。
使用第三方解决方案安排Cron
如果您不习惯在服务器上设置cron作业或您的托管服务提供商不提供访问权限,您还可以使用第三方解决方案,例如EasyCron。