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作业仍然每5分钟执行一次,即使wp cron。php文件应该每15分钟执行一次?
而且,cron作业有时在一分钟内执行十几次,这怎么可能呢?