了解WP-Cron

与传统的系统cron不同,即将特定时间(即每小时5分钟以上的小时)调度任务,WP-Cron使用间隔来模拟系统cron。 WP-Cron被赋予了第一个任务的时间和一个间隔,以秒为单位的时间,之后重复任务。 例如,如果您计划任务从下午2:00开始,间隔时间为300秒(5分钟),则任务将首先在下午2:00运行,然后在下午2:05和之后每5分钟运行一次。

什么是 Cron

WP-Cron的工作原理是:在每个页面加载时,都会检查一个计划任务的列表,以查看需要运行的内容。计划运行的任何任务将在该页面加载期间运行。 WP-Cron不像系统cron那样持续运行;它只是在页面加载时触发。如果您将任务计划在下午2:00,并且在5:00 PM之前没有页面加载,则可能会发生计划错误。

为什么要用WP-Cron

为什么要用WP-Cron?许多托管服务是共享的,不提供对系统cron的访问,但WordPress核心和许多插件确实需要一个cron系统来执行基于时间的任务。 Cron是一个有用的工具,因此是WP-Cron的开始。虽然在特定时间可能无法运行,WP-Cron将及时完成您的任务。使用WordPress API是一种更简单的方法来设置cron任务而不是在WordPress之外。

使用系统Cron,如果时间过去,任务没有运行,它将丢失,永远不会运行。 WP-Cron将运行任务,无论它们多大。任务将坐在队列中,直到加载页面来触发它们,因此任务不会丢失。

为了简化调度任务,WordPress提供了三个默认间隔,也是添加自定义间隔的简单方法。WordPress提供的默认间隔是:

  • hourly
  • twicedaily
  • daily

要添加自定义间隔,您可以创建一个过滤器,例如:

add_filter( 'cron_schedules', 'example_add_cron_interval' );
 
function example_add_cron_interval( $schedules ) {
    $schedules['five_seconds'] = array(
        'interval' => 5,
        'display'  => esc_html__( 'Every Five Seconds' ),
    );
 
    return $schedules;
}

此过滤器函数创建一个新的间隔,这将允许我们每五秒运行一次cron任务。

注意:所有时间间隔为秒。