WordPress博客

wordpress 定时任务 wp-cron 优化

2022-04-23  本文已影响0人  大官人886

wp-cron 的实现原理

简单的说,wp-cron 会被每个页面加载,  也就是用户访问的时候,都会去检查有哪些任务要执行,非常浪费性能,最重要的是不确定会不会执行。

相信有很多人跟我一样,网站访问量不高,这种依赖用户访问来触发的机制,实在没法满足

1.  禁用用户自动触发

在配置文件 wp-config.php 里添加:

define('DISABLE_WP_CRON', true);

2. 通过系统的 crontab 来触发 wp-cron,这样做的好处是,系统一定会按时去执行,不依赖用户的访问了。同时只会被触发一次,而不是每个用户访问都要来检测浪费性能。

在 Linux 命令行输入:

crontab -e

然后会打开系统的 cron 服务编辑,有的系统可能会问你用哪种编辑器,推荐选择 vim 或者 tinyvim。

然后加入一行

* * * * *   curl   https://example.com/wp-cron.php >> /dev/null 2>&1

什么意思呢,就是每分钟,系统都会去请求一次 wp-cron.php 这个文件,注意替换你的域名。 >> /dev/null 2>&1 意思是忽略响应的结果,我们不需要保存日志。

为什么是每分钟呢,我明明想一个小时运行一次啊。因为 wordpress 自己会判断何时执行任务,我们要做的就是及时的去触发他。况且系统一分钟只会访问一次,不会造成压力的。不仅提高了性能,还让任务能及时执行。

3. 我的空间无法执行命令,或者我的系统是 windows,怎么办?(即使是 Linux 系统,也推荐这种方式,管理真的很方便)

这个时候只能依赖第三方的工具了,这里我推荐2个有免费套餐的

- webcron.org 这个在国外用的比较多,界面不太好看,最重要的是,没有免费套餐。

- URLCron 这个使用很简单,界面简洁美观,可以查看运行的状况和结果,管理很方便。还有免费套餐,完全够用。

可以看到,添加任务只需要填入我们 wp-cron.php 的 URL 即可以,然后保存,其他的用不上,不用管。然后每次运行的记录都会被保存,再也不用怀疑任务没运行了。

上一篇下一篇

猜你喜欢

热点阅读