wp_cronをテストするには?


28

これは一種の愚かな質問です...

1時間ごとに実行するアクションをスケジュールしました。

if(!wp_next_scheduled('my_hourly_events'))
  wp_schedule_event(time(), 'hourly', 'my_hourly_events');

add_action('my_hourly_events', 'the_function_to_run');

function the_function_to_run(){
   echo 'it works!'; 
}

これが1時間待たずに機能するかどうかをテストするにはどうすればよいですか?:)

wp_clear_scheduled_hook('my_hourly_events');このコードの前に追加してから追加しようとしましwp_cron()たが、実行中の関数が表示されません...

編集:

OK、trigger_error()関数内にapacheエラーログをチェックアウトし、そこにあります:)

だから今、私はさらに混乱しています:

  • wp-cronはどのようにバックグラウンドで実行できますか?どうやら出力が表示されない場合にそれが起こるからです...

  • これはオブジェクトコンテキストでは機能しないようです。どうして?


OKでwp-cron.phpが実行されていることがわかりましたwp_remote_post()。それはすべてを説明しています
...-onetrickpony

「オブジェクトコンテキスト」とは、コールバックが次のようなものであることを意味しますarray( &$this, 'my_method_name' )か?関数名はデータベースに保存されて後で実行されるため、実際には機能しません。&$thisクラス名ではなく特定のオブジェクトを参照します。このオブジェクトは、cronジョブが実行される次のリクエストでは存在しません。静的クラス関数が機能するはずです。
ヤンファブリ

はい、関数を静的にする必要がありました。私はwpがローカルスクリプトを「cron」としてリモートで実行するとは思わなかった
onetrickpony

回答:


20

そのための私のお気に入りのプラグインは、cronで何が起こっているかを表示するための非常に素晴らしいモジュールを備えたCore Controlです。どのイベントがセットアップされ、次にいつ起動されるかなどです。

ダーティレベルを参照してください_get_cron_array()。cronイベントの内部保存データを返します(キーのトップレベルはタイムスタンプです)。


HTTPアクセスロガーはすべての要求を記録しますか、それともWPのHTTP APIで行われた要求のみを記録しますか?これは、プラグインが行うリクエストと、ページの読み込みが遅い理由を見つけるのに最適です:)
onetrickpony

ていないことを確認ポニートリック@Oneが、それはそれだけのAPIを想定して理にかなって
Rarst
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.