WordPress Cronの問題をデバッグするにはどうすればよいですか?ユーザーがサイトにアクセスしたときにトリガーされると思いますが、ジョブは「非同期に」実行されるため、エラーは表示されません。それでは、どのようにエラーをデバッグできますか?
私が使う wp schedule event
WordPress Cronの問題をデバッグするにはどうすればよいですか?ユーザーがサイトにアクセスしたときにトリガーされると思いますが、ジョブは「非同期に」実行されるため、エラーは表示されません。それでは、どのようにエラーをデバッグできますか?
私が使う wp schedule event
回答:
次を呼び出して、WP cronを手動で実行できます。 http://example.com/wp-cron.php?doing_wp_cron
デバッグ中に自動cronを実行したくない場合は、これを/wp-config.php
ファイルに追加します。
define('DISABLE_WP_CRON', true);
開発環境でデバッグ情報を出力したい場合、そのように手動で呼び出すとデバッグ出力が表示されます。
または、PHPの組み込みerror_log関数を使用して、デバッグ用にメッセージ文字列をエラーログに記録できます。Rarstが述べたように、これをWP_DEBUG設定と組み合わせて使用する必要があります。
?doing_cron
パラメーターのヒントをありがとう。
?doing_wp_cron
代わりにすべきだと思います?doing_cron
。
プラグインCron-Viewを使用できます。そこにあなたの仕事がa)登録されているか、b)次の期日が何であるかがわかります。
さらに、より低いスケジュールタイマーをイベントに追加し(2分ごとなど)、ローカルシステムでメソッドをより頻繁にテストできます。「cron_schedules」フィルターフックを使用して、新しいスケジュール時刻を登録します。例えば:
function my_additional_schedules($schedules) {
// interval in seconds
$schedules['every2min'] = array('interval' => 2*60, 'display' => 'Every two minutes');
return $schedules;
}
add_filter('cron_schedules', 'my_additional_schedules');
アクションを作成し、内部でCronアクションを実行することにより、手動でデバッグできます。このような:
add_action( 'init', function() {
if ( ! isset( $_GET['the_cron_test'] ) ) {
return;
}
error_reporting( 1 );
do_action( 'this_is_cron_event_hook' );
die();
} );
そして、あなたのウェブサイトのアドレスに行くことにより: http://example.com?the_cron_test
これにより、cronタスクのエラーが表示されます。
しかし、それを手動で行う意味はありません。これを行うAdvanced Cron Manager PROプラグインを使用でき、ログやその他の統計も保存できます。