Wordpressのcronジョブはサーバー上でいくつかの問題を引き起こすように見えたので、これをwp-config.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ジョブを実行します。
テストするために、functions.phpテーマファイルにcronjobを追加しました。これは単にメールを送信しました。 functions.phpのこのコードでcronjobを追加しました。
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', '' );
}
その後、メールが届くのを待ちました。
私が期待していたこと:cronジョブは15分ごとに1回しか実行されないため、15分ごとに1回の電子メールですよね?
しかし、何が起こったのですか:
私の質問は次のとおりです:wp-cron.phpファイルは15分ごとに1回だけ実行されるべきなのに、なぜcronジョブは5分ごとに実行されているのでしょうか?
また、cronジョブが1分間に12回以上実行されることはどのように可能ですか?
15分ごとにwp-cron.phpを呼び出しているかもしれませんが、cronタスクは5分ごとに発生するように設定されています!
$schedules["5min"] = array(
'interval' => 5*60,
'display' => __('Once every 5 minutes'));
...
wp_schedule_event( time(), '5min', 'isa_add_every_five_minutes' );
代わりに15分ごとに変更します