将 WP-Cron 挂接到系统任务计划程序

如前所述,WP-Cron 不会连续运行,如果有必须按时运行的关键任务,这可能会成为一个问题。有一个简单的解决方案。只需将系统的任务调度程序设置为按您希望的时间间隔(或在需要的特定时间)运行。最简单的解决方案是使用工具向文件发出 Web 请求wp-cron.php

在您的系统上安排任务后,还需要完成一个步骤。WordPress 将在每个页面加载时继续运行 WP-Cron。这不再是必需的,并且会导致服务器上的额外资源使用。可以在文件中禁用 WP-Cron wp-config.php。打开wp-config.php文件进行编辑并添加以下行:

define( 'DISABLE_WP_CRON', true );

视窗

Windows 将其基于时间的调度系统称为任务调度程序。可以通过控制面板中的管理工具访问它。

设置任务的方式因服务器设置而异。一种方法是使用 PowerShell 和基本任务。创建基本任务后,可以使用以下命令调用 WordPress Cron 脚本。

powershell "Invoke-WebRequest http://YOUR_SITE_URL/wp-cron.php"

MacOS 和 Linux

Mac OS X 和 Linux 都使用 cron 作为它们基于时间的调度系统。它通常是使用命令从终端访问crontab -e。应该注意的是,任务将以普通用户或根用户身份运行,具体取决于运行命令的系统用户。

Cron 有一个特定的语法需要遵循,包含以下部分:

  • 分钟
  • 小时
  • 一个月中的第几天
  • 星期几
  • 要执行的命令

如果无论哪个时间段都应运行命令,则应使用星号 (*)。例如,如果您想要每 15 分钟运行一次命令,而不管小时、日期或月份,它看起来像:

*/15 * * * * command

许多服务器已经wget安装,这是一个调用 WordPress Cron 脚本的简单工具。

wget --delete-after http://YOUR_SITE_URL/wp-cron.php

笔记:注意:如果没有 –delete-after 选项,wget 将保存 HTTP GET 请求的输出。

每日调用您网站的 WordPress Cron,每天晚上午夜触发,看起来类似于:

0 0 * * * wget --delete-after http://YOUR_SITE_URL/wp-cron.php