wordpress 的定时任务,比如定时发布文章,依赖的是自带的 wp-cron 来实现,这个需要用户访问来触发
由此引发了一个问题:
那么最好是禁用自动触发的功能
在 wp-config.php
里加上:
define('DISABLE_WP_CRON', true);
这样就不会每个用户访问都来检测定时任务了
如果是 linux 系统,并且可以登录服务器,那么用系统自带的 crontab
来触发任务是比较理想的选择
crontab -e
然后添加
* * * * * curl https://example.com/wp-cron.php >> /dev/null 2>&1
这样,每分钟系统都会访问 wp-corn.php 这个文件,然后 wp-cron 会判断何时执行任务
如果是 windows 系统,或者没有权限操作系统的 crontab ,那么还可以选择第三方的服务,这里我就要推一下我自己的服务了: URLCron
URLCron 会根据设定的频率或者表达式,按时去访问,与 crontab 的行为一致。不过使用 URLCron 会更加的方便,因为配置更简单,不需要 Linux 服务器的知识,同时可以保存访问记录,所以不用担心有没有触发定时任务,都记着呢
PC 和手机浏览器都有很好的体验,免费套餐也够 WordPress 用了
1
ZE3kr 2022-04-23 21:34:50 +08:00
你可以看下源代码
https://github.com/WordPress/WordPress/blob/master/wp-includes/cron.php#L923 cron 是通过发起 curl 异步执行的,所以并不会严重影响性能,而且最长只阻塞 0.01 秒。 |
2
NewYear 2022-04-24 10:43:07 +08:00
|