禁止WordPress定时任务解决占用CPU资源问题

我们发现 WordPress 程序是自带定时任务的,在发布文章的时候自己设置定时时间。但是这个定时任务导致宝塔面板后台的 CPU 负载很高,尤其是我们低配置服务器的会比较明显拉低速度。那一般我们会采用禁止定时任务功能,采用人工发布功能。在测试主题在大数据、文章多情况下的运行速度时,发现会生成 PHP 错误日志:

  1. PHP Warning: foreach() argument must be of type array|object, int given in XXXXX\wp-cron.php on line 117

wp-cron.php 是 WordPress 用于定时任务,可能是在测试时使用了采集插件采集文章,停用插件后,定时采集设置还留在数据库中引起的。

一、屏蔽错误提示,打开 wp-cron.php 文件将第 117 行的:

  1. foreach ( $cronhooks as $hook => $keys ) {

改为:文章源自知更鸟-https://zmingcx.com/disable-wordpress-for-cron-jobs.HTML

  1. if ( is_array( $cronhooks ) ) foreach ( $cronhooks as $hook => $keys ) {

即可禁止生成这个错误信息。

二、禁用定时功能,打开 WordPress 配置文件 wp-config.php 添加:

  1. /** 禁用定时 */
  2. define('DISABLE_WP_CRON', true);

即可禁用定时功能。另外,这个定时功能非常消耗资源,会出现 cpu 占用 100%的情况,造成宕机。如果你的主机经常因资源耗尽被停机,罪魁祸首有可能就是这个。禁用定时任务将减少 CPU 压力。如果我们需要使用定时任务,我们可以使用定时任务插件。或者我们可以不使用定时任务手动发布文章,因为定时任务会定时检测是否发布,会占用 CPU 资源。

所以不使用定时功能,第二种方法直接禁用。

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

轻松在 WordPress 中操作cookie的方法

2022-3-23 11:02:46

WordPress教程

WordPress 自动获取网站某个自定义字段的所有值

2022-3-23 16:04:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索