WordPress禁用WP cron优化定时执行功能

自然
自然
自然
388
文章
443
评论
2019年6月2日16:13:09 7 1067字阅读3分33秒

wordpress经常会需要在后台设置一些定时任务,这些任务又是如何触发并执行的呢?wordpress在每次用户访问页面的时候,会在后台自动执行WP cron定时任务检测,查看是否需要执行某些操作。这在使用中就会造成一些奇怪的问题。

  • ①执行检测并运行会占用CPU资源,如果网站访问量巨大的时候,可能会执行N多检测,大量占用服务器资源,严重的话可能造成服务器宕机。
  • ②如果像自然这种基本没什么人访问,或者访问量小,或者设置了优化缓存,那么就会造成任务无法被正确执行,最糟糕的情况是优先访问缓存,直接不出发WP cron定时执行功能。

Wordpress禁用WP cron优化定时执行功能
为了协调这个问题。我们提供一种新的思路,我们禁用wordpress访问时自动触发,然后采用服务器定时自动触发WP cron定时执行功能。

这样可以控制WP cron定时执行功能不会占用太多cpu资源,并且高效的被执行。

通过善用搜索引擎,我们找到了方法。

首先需要在wordpress站点根目录下的wp-config.php中添加如下代码,以达到禁用效果。

define('DISABLE_WP_CRON', true);

然后我们使用服务器的crontab功能添加定时触发任务,执行crontab -e,按i,然后再下面加入一行代码。

*/10 * * * * curl https://www.wanvi.net/wp-cron.php?doing_wp_cron  > /dev/null 2>&1

这里我们设置每隔10分钟触发一次执行,你可以根据自己的需求进行调整。> /dev/null 2>&1是不输出任何log日志文件,可以降低服务器硬盘占用,如果你需要进行日志记录,可以将它更改为>> /tmp/test.txt,这里要求输入日志存储的绝对路径。

如果你使用的是虚拟主机,那么可以使用第三方提供的监控服务,例如360云监控。监控网址格式如下:

https://www.wanvi.net/wp-cron.php?doing_wp_cron

这里我们优化了Wp cron的触发方式,优化了cpu和内存的开销,但是我们依然无法避免一些无效的wp cron定时任务。经常安装各种(缓存)插件,许多插件都会为自身性能而去添加一些Wp cron定时任务,当我们卸载插件后这些定时任务并不会被完整移除,这就造成了WP cron定时任务的无用功,运行一些没有实际意义的定时任务,不仅造成了用户体验的下降,还造成了以写没有必要的cpu和内存的性能消耗。

对于wordpress性能优化感兴趣的小伙伴可以看一下我的另一篇文章“WordPress移除无效的 WP-Cron 定时任务

weinxin
自然博客
快来关注一下,一个linux运维爱好者的个人博客!
自然
  • 本文由 发表于 2019年6月2日16:13:09
WP-China-Yes自建wordpress中国区仓库源 Nginx

WP-China-Yes自建wordpress中国区仓库源

WordPress的CDN在19年被国内攻击后(存疑),一直屏蔽了大陆IP的访问,从大陆访问WP的服务都会返回429 Too Many Requests。虽然WP官方社区并不承认屏蔽了大陆地区的访问(...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:7   其中:访客  4   博主  3
    • 简单生活 简单生活 3

      用了宝塔计划任务,日志这各报错是咋回事 大佬?https://www.xxxx.com/wp-cron.php?doing_wp_cron: No such file or directory

        • 自然 自然

          @ 简单生活 错误提示什么?复制一段看看

            • 简单生活 简单生活 3

              @ 自然 /www/server/cron/8d78f66900cb64058745a64661f505a1: line 4: https://www.xxxx.com/wp-cron.php?doing_wp_cron: No such file or directory 就这。。。

                • 自然 自然

                  @ 简单生活 一切正常喔!宝塔任务选择访问URL
                  i.loli.net/2019/12/22/AkbpcGWEVPflmRZ.png

                    • 简单生活 简单生活 3

                      @ 自然 15分钟访问一次 https://www.xxxx.com/wp-cron.php?doing_wp_cron 就日志里上面信息

                      • 自然 自然

                        @ 简单生活 宝塔日志不用管它,你只需要保证任务正常触发即可

                        • 简单生活 简单生活 3

                          @ 自然 好的 谢谢!