wpのバックグラウンドで動くpingの仕組み(wp-cron)

気になったので調べてみました。

まずはソースコードを追ってみました。

まず wp-includes/post.php に

wp_schedule_single_event(time(), ‘do_pings’);

という行が。
どうやらこれがスケジュールの登録をする関数のようで、wp_postmetaにmetakeyが「_pingme」の行を追加して送信待ちのpostを記録します。

この関数は wp-includes/cron.php にあって、同じファイル内の _set_cron_array という関数で wp_option.cron にスケジュール情報を格納します。

だいたいの仕組みがわかったところでググってみたら、詳しい説明が見つかりました。
http://another.maple4ever.net/archives/130/

なるほど。理解しました。

ちなみにcronのスケジュール情報はwp_options.option_name = ‘cron’ のフィールドに入ってます。
シリアライズされた情報が格納されているので、肉眼で見てもよくわかりませんが、wp-cron-dashboardというプラグインで可視化できます。
http://en.sourceforge.jp/projects/wppluginsj/releases/36895

wp-cron-dashboard

wp-cron-dashboard

タグ: , ,

関連記事

コメントをどうぞ