wordpress 的定时任务,比如定时发布文章,依赖的是自带的 wp-cron 来实现,这个需要用户访问来触发
由此引发了一个问题:
- 如果网站用户访问不多,那么任务将不确定何时被触发
- 如果网站访问量很大,那么会严重的损耗性能(当然访问量大的,应该有能力解决)
那么最好是禁用自动触发的功能
禁用 wp-cron
在 wp-config.php 里加上:
define('DISABLE_WP_CRON', true); 这样就不会每个用户访问都来检测定时任务了
通过 crontab 触发 wp-cron
如果是 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 用了

