wordpress禁用wp-cron.php降低云服务器负载

阿里云代金券 腾讯云代金券 VULTR优惠码 Ucloud云主机

如果你的网站经常卡顿,可以看一下你的宝塔面板,是不是网站的卡的时候服务器的负载也很高?此时此刻不要急着去升级你的云服务器,也许是因为wordpress定时任务文件引起的,也就是wp-cron.php。

1 - wordpress禁用wp-cron.php降低云服务器负载

用wordpress建站,我们经常会安装各种插件,但许多插件都会为自身性能而去添加一些wp-cron定时任务,当我们卸载插件后,这些定时任务可能没有被完整移除,会有一些残留。久而久之,wordpress就会经常运行一些没有实际意义的定时任务,造成资源占用较高的情况。对于这种情况,我们首选方式是移除这些无效的wp-cron定时任务,来优化wordpress的性能。在当前主题的function.php文件里面添加如下代码:

//移除无效的wp-cron定时任务
add_action('wpjam_remove_invild_crons', 'wpjam_remove_invild_crons');
function wpjam_remove_invild_crons(){
    global $wp_filter;
    $wp_crons = _get_cron_array();
    foreach ($wp_crons as $timestamp => $wp_cron) {
        foreach ($wp_cron as $hook => $dings) {
            if(emptyempty($wp_filter[$hook])){
                foreach( $dings as $sig=>$data ) {
                    wp_unschedule_event($timestamp, $hook, $data['args']);
                }
            }
        }
    }
}
if(!wp_next_scheduled('wpjam_remove_invild_crons')) {
    wp_schedule_event( time(), 'daily', 'wpjam_remove_invild_crons' );
}

 

wp-cron.php是干什么的?

wp-cron.php主要用来实现wordpress网站的一些定时任务,如定时发布文章,定时备份数据,定时响应页面缓存等操作。wp-cron是wordpress内置模块,该模块的特点:它只能在用户发起请求时检查定时任务。也就是说,没有用户访问时,那定时任务就得不到执行;有用户访问时,某个用户会因为定时任务在执行而响应很慢甚至超时,所以,wp-cron有时候会造成服务器压力。我们可以通过禁止wp-cron.php或者创建一个独立的进程来执行定时任务,比如说使用crontab + wp-cli实现这种做法。

如何禁用wp-cron:

通过FTP工具,或者宝塔面板找到wordpress程序根目录下的wp-config.php,并添加如下代码:

define('DISABLE_WP_CRON', true);

这将防止 WP-Cron 在每次页面加载时自动检查计划的 cron 事件。这不会完全禁用 WordPress 中的计划事件,而只会自动检查和触发计划事件。为了确保预定事件继续工作,我们可以找其他替代方法来触发预定事件。

如果我们还想使用定时发布文章等功能怎么办呢?

对于使用宝塔面板的朋友:

1、可以到宝塔面板添加一个计划任务,使用脚本命令每隔多少分钟运行一次。

3 - wordpress禁用wp-cron.php降低云服务器负载

2、或者访问URL任务:

4 - wordpress禁用wp-cron.php降低云服务器负载

 

没使用宝塔的朋友,可以添加 Linux 计划任务:

在 Linux 系统的 crontab 中填加以下内容 (请修改对应的 WordPress 目录) ,设置每 30 分钟访问一次 wp-cron.php 以执行 WordPress 定时任务。

*/30 * * * * cd /www/wwwroot/www.你的域名.com; php wp-cron.php &>/dev/null

这样,我们就替代了 WordPress 内置的前端触发类型的 cron 定时任务,Linux 系统基于时间的计划任务更稳定,不会因为前台访客少从而错过执行计划任务的时间,也不会因为前台访客多而过于频繁的执行 WordPress 计划任务。一般而言绝大多数的网站 10 -30 分钟一次的计划任务都足够了,当然你也可以缩短这个触发时间。

赞(1) 领红包
转载注明:楚狂人 » wordpress禁用wp-cron.php降低云服务器负载

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

云计算我们是认真的

阿里云服务器腾讯云服务器

扫码领红包 或者 支付宝搜索:5981405

支付宝扫一扫打赏