为什么预定的cron会出现在admin中,而不是出现在wp-cron中?

时间:2017-04-28 00:23:51

标签: php wordpress cron

我在wordpress中创建了一个新插件,它在激活时调度cron。调度部分如下所示:

    $crons = _get_cron_array();
    //Use wp_next_scheduled to check if the event is already scheduled
    $timestamp = wp_next_scheduled('customers-hourly');

    if($timestamp == false) {
        //Schedule the event for right now, then to repeat daily using the hook 'wi_create_daily_backup'
        wp_schedule_event(time(), 'hourly', 'customers-hourly');
    }
    $crons = _get_cron_array();

    add_action('customers-hourly', [$this, 'hourlyCron']);

使用调试器单步执行代码时,在激活代码后,_get_cron_array包含:

$cron = [ // 12 elements
    [.. snip other crons ..]
    1493335692 => [
        'customers-hourly' => [
            'schedule' => 'hourly',
            'args' => [],
            'interval' => 3600,
        ],
    ],
    'version' => 2,
];

所以我的cron肯定在那里。 当我直接加载cron.php并调用_get_cron_array()时,它会显示19个元素,其中没有一个是每小时客户。

知道造成这种情况的原因是什么?

1 个答案:

答案 0 :(得分:1)

我忽略的一个主要细节是我正在使用多站点。 cron是在网站上创建的,而我从其中一个站点运行了cron。 从网络站点运行cron代替了我在管理员中看到的所有crons并修复了问题。

最终结果:键盘和椅子之间存在问题。