外部cron作业触发次数过多

时间:2017-09-06 作者:user2202070

Wordpress的cron作业似乎在我们的服务器上引起了一些问题,所以我将其添加到了wp配置的底部。php:

define(\'DISABLE_WP_CRON\', \'true\');
并使用“crontab-e”添加了以下内容:

*/15 * * * * /usr/bin/php /path/to/wordpress/wp-cron.php > /var/log/cronoutput.log
如果我没有错的话,上面的内容将让我们的服务器每15分钟执行一次Wordpress cron作业。

为了测试,我在函数中添加了一个cronjob。php主题文件,它只是给我发了一封电子邮件。我在函数中添加了带有此代码的cronjob。php:

function my_cron_schedules($schedules){
    if(!isset($schedules["5min"])){
        $schedules["5min"] = array(
            \'interval\' => 5*60,
            \'display\' => __(\'Once every 5 minutes\'));
    }
    if(!isset($schedules["30min"])){
        $schedules["30min"] = array(
            \'interval\' => 30*60,
            \'display\' => __(\'Once every 30 minutes\'));
    }
    return $schedules;
}
add_filter(\'cron_schedules\',\'my_cron_schedules\');

// Schedule an action if it\'s not already scheduled
if ( ! wp_next_scheduled( \'isa_add_every_five_minutes\' ) ) {
    wp_schedule_event( time(), \'5min\', \'isa_add_every_five_minutes\' );
}

// Hook into that action that\'ll fire every three minutes
add_action( \'isa_add_every_five_minutes\', \'isa_add_every_five_minutes_func\' );
function isa_add_every_five_minutes_func() {
    mail( \'[email protected]\', \'this is a cron job\', \'\' );
}
然后,我等待电子邮件的到来。

我所期望的是:每15分钟发送一封电子邮件,因为cron作业应该每15分钟执行一次,对吗?

但事实是:

按照代码中的配置,电子邮件大约每5分钟发送一次,即使服务器上的cron作业应该每15分钟触发一次

而且,cron作业有时在一分钟内执行十几次,这怎么可能呢?

1 个回复
SO网友:Tom J Nowell

您可能正在调用wp cron。php每15分钟一次,但您的cron任务设置为每5分钟一次!

    $schedules["5min"] = array(
        \'interval\' => 5*60,
        \'display\' => __(\'Once every 5 minutes\'));

...

wp_schedule_event( time(), \'5min\', \'isa_add_every_five_minutes\' );
改为每15分钟一次

结束