WordPressでCronの方法を変えたらPINGをすぐ打たなくなった(一部追記)

件名の状況に陥った時の原因と対処法です。

ポイントは「すぐ」打たれなくなったというところ。なので「待ってたらおもむろに打たれるんだけど、どうしてなんだろう・・・」とお悩みの方向けの内容になってます。

全然打ってくれない、という場合も元をたどれば同じかもしれませんが、その場合は予約投稿も全くできなくなってるはずです。参考まで。

 

で、結論から言うと、このPlugin(Wordpress Ping Optimizer)のPING実行はWP-CRONに依存しているため、同機能を変更した場合はPING実行タイミングについても引きずられた状態となります。

 

どうもこんにちは、さんぺい([jin_icon_twitter size=”18px” color=”blue”]@3pei_tw)です。

最近「トラブル系」っていうタグを追加して、過去の投稿にも該当なら(不具合の明示とわかればその対処方法を書いてるもの)内容を見直しつつ、タグを付けていたんですが、我ながらそれ系の投稿が多くて自分で驚いてましたw

思えば昔はコールセンターでオペレーターとかやってたこともあったんで、そのあたりで染みついた課題解決力みたいなものがここにきて盛り上がってきたのかな、と思ってみたり。

閑話休題、今回はWordPressで困ってる人のための記事です。そうでない方、ごめんなさい。

 

たとえば

話を本流に戻します。

●WP-CRONをやめてCRONに統合し、実行間隔を1時間に1回にした

→PING通知も同じ間隔で行われる。毎時45分に設定していた場合、9時5分に投稿されたPINGが打たれるのは9時45分まで待たなければいけない

※PingOptimizerのログを見るとこのようになっています
(これは当サイトの設定で、10分間隔での実行を指定しているものです)

ここからわかることは以下

・PluginによるPINGは投稿直後にPINGできなくとも保持される
(できなかった際は次のWP-CRON実行まで記憶されている)

・CRON実行タイミングの00秒までに準備ができていないと次に回される
(上記の場合、40分に投稿されたからと言って即実行されるわけではない)

 

対応策

ざっと思いつくところだと対応案は2つ

 

①元に戻す

(WP-CRONを再び単独で動作するようにする)

 

メリット

・戻すだけなので楽

 

デメリット

・戻せば負荷が高くなったり、予約投稿失敗が増えるおそれあり

 

②CRON実行間隔を短くする

(1時間ごと→5分ごと、など)

 

メリット

・①の不具合が出ていたので変更した場合、戻ることはない

 

デメリット

・間隔を短くすれば、それなりに負荷が増える。だが正直取るに足らないレベル。

 

結論

CRONの間隔を短くしましょう。僕はちなみに10分間隔です。

*/10 * * * * apache /usr/bin/php /var/www/html/wp-cron.php > /dev/null 2>&1

 

9時2分に投稿した時は、PINGが打たれるのが9時10分になりますが、10分になれば飛ぶのがわかっていれば安心ですよね。

PINGは打たれるんだけど時間がだいぶあとなんだよなぁ、という方はこの辺りを疑ってみてください。