A Django site.
1月 19, 2008

MMRT daily life
MMRT daily life
MMRT daily life is about »
» WP-Cronは動いてるのか?

昨日の続き・・・

TB多重送信防止のため、Google XML Sitemapsをバックグラウンドで動かす設定にしたわけだが、今日確認すると投稿前日に生成されたままだ。よくわからないのだが、投稿ボタンをクリックしてから一体何秒後、何分後、何時間後に作動するのか? はたまた作動しているが失敗しているのか? 疑問は尽きない。

WP-Cron-Dashboard

こんなプラグインを見つけた。WP-Cronのタスクスケジュールを表示してくれるらしい。

WP Cron Dashboard

こんな感じだ。この時はsitemapを生成してくれた。サーバの混雑具合に左右されているのだろうか? したりしなかったりは一番面倒なパターンだ。強制的に生成する方がマシだと思い始めた。

構築 設定:

* 手動による Sitemap ファイルの再構築を可能にする
WordPress APIを使用せずに外部ツールでデータベースに書き込みした場合は、Sitemapファイルをリフレッシュしてください。プロセスを始めるのに次のURLを使用ください: http://wp.mmrt-jp.net/***
Sitemapファイルの構築に成功したら、ログを確認することをお勧めします。

Google XML Sitemapsの設定画面には上のような設定がある。これを使ってみる。ウチはほぼ1エントリー/日なので1日1回sitemapを更新してくれればいい、たとえ何時でも。でも、記事を投稿してから直接叩くのは面倒だし、忘れそうだ。そこはCRON(サーバの)を使えばよかとじゃなかろか。でもサーバによってはCRONが使えないじゃんと心配するなかれ。

WebCron.org

無料でcronを代行してくれるドイツのサイトがある。ロリポ時代にcronが使えなかったのでこれにお世話になってました。ここにタスクを追加してみました。

しかし、XreaはCRONが使えるじゃろ?と言われるだろうが、CRONジョブの設定ってどうするのさ? 相対パスで入力するところに例のURLをそのまま入れても使えないんじゃね?と思ったから。知ってる人がいたら教えて欲しいなぁ。

とりあえず、これで試してみまひょ。 8)

1月 18, 2008

MMRT daily life
MMRT daily life
MMRT daily life is about »
» 多重TB問題を考察

WP v2.3にして少し経った頃、トラックバックすると多重送信になるようになった。2重のこともあれば4重のこともある。全然、そのあたりに規則性はないようだった。このように必ず失敗するだろうと思われる状態でトラックバックする勇気はない。しかし、本気で追求はしなかった。なぜなら、トラックバックしなければ問題ないから・・・。(なんて後ろ向き) たぶん、プラグインがらみじゃないかという気だけはした。しかし、2.3にアップグレードする際に触ったプラグインは数多く特定するにはかなり検証が必要だった。でもなんとなく勘でGoogle XML Sitemapsが怪しいと思った。(はっきりせいや)

Google XML Sitemapsにはずっとひろまさハックを適用してきたのだが、3.0くらいからハック箇所のコードが変わってきた。(汗) ひろまささんはこの頃絶好調に?忙しそうで頼みづらい。(苦笑) 見よう見まねで改変していたのだが、正直なもので気がつくと動いてなかった。しょうがないのでデフォルトで動かす。気がつくとまた動いてなかった。(ダメダメだ)

たぶんだが、記事数が多すぎタイムアウトするのだろう。その際に多重TBになるとか想像してみた。ならば、sitemapを投稿時に生成させないようにすればいい。管理画面内に「拡張オプション」があり、その中にはタイムアウトの時間を延長させたり、sitemap生成をバックグラウンドで行なうようできるので設定を変更する。今のところ、これでいいようである。

デバッグで発見 <その1>

Notice: Only variables should be assigned by reference in /***/wp-includes/post.php on line 1008

こんな表示が複数出ていた。なんだ :?:

「Only variables should be assigned by reference」→「変数だけが参照に割り当てられるべきである」

Notice : 実行時の注意勧告
エラーを発しうる状況に遭遇したことを示す。ただし通常のスクリプト実行の場合にもこの警告を発することがありうる。

Notice はプログラムの記述方法にあいまいな点があることが原因です。多くの場合は、PHP 処理系が適切な判断をして、よきに計らってくれます

よきに計らうって。どうなんでしょう、これは? :mrgreen:

PHP 4.3 まで古いバージョンでは、このメーセージは出力されませんでした。
PHP 4.4 以降のバージョンで、出力されるようになりました。
PHP 4 で開発されたプログラムを PHP 5 で実行すると、頻繁に出力されるようです。

また、PHP 5 でも環境設定によって、出力されない場合があります。
そのため、「参照返し」を理解している開発者でも、メッセージは出ることに、気が付かないケースもあります。

む、むずかしい・・・。むずかしすぎる! :sad:

デバッグで発見 <その2>

デバッグ画面が日本語化されない。で、直してみたが、別にあまり見ないからいいのか。 :lol: