Oct 25
Nucleus3.31がもうすぐなんですが、このバージョンから更新pingの送信がコアから外れてプラグインになります
今は更新pingを複数のサーバに送信する際には、NP_SendPingを使ってるわけですが、NP_Pingは送信先サーバが追加できません(出来るけど直接ファイル書き換えなきゃならない)
『フランス国内からしか受け付けません』とかトップページに書いてあるサーバまでリストアップしてあるし、GoogleにもYahoo!にも送信していません
リストの最後にあるところは、多分登録会員専用のトコだし…
ということで、最新版を元に大改造中
もちろん、NP_SendPingのコードをマージして、再編集後のping送信にも対応です
デフォルトの送信先もいくつか追加しました
ここで問題
更新ping送信先が一杯あるとどうなるでしょう?
答え:レスポンスの遅いところに足を引っ張られて、一番最初にpingしたところがサイトを確認しに来た時に、まだ全部のping送信が終わってない事がある
これを避けるためには並列処理が必須
もっと言うと、『更新ping送信自体をNucleusの外に任せた方がいい』んだけど、そこまではプラグインでは出来ないので…
話は変わって、『pingをバックグラウンドで送信』ってオプションがあるんですが、これ、CLIのphpに任せてます?
FreeBSDのportsってば、『CLIをインストールしない』オプションなんてのがあるんですが、CLIインストールしてないサーバだとどうなるんでしょう?
てかexec使っていいなら、ping送信そのものを全部execしちゃえば、(少なくともNucleus自体のレスポンス的には)並列処理とか考えなくていいんじゃ?
今は更新pingを複数のサーバに送信する際には、NP_SendPingを使ってるわけですが、NP_Pingは送信先サーバが追加できません(出来るけど直接ファイル書き換えなきゃならない)
『フランス国内からしか受け付けません』とかトップページに書いてあるサーバまでリストアップしてあるし、GoogleにもYahoo!にも送信していません
リストの最後にあるところは、多分登録会員専用のトコだし…
ということで、最新版を元に大改造中
もちろん、NP_SendPingのコードをマージして、再編集後のping送信にも対応です
デフォルトの送信先もいくつか追加しました
ここで問題
更新ping送信先が一杯あるとどうなるでしょう?
答え:レスポンスの遅いところに足を引っ張られて、一番最初にpingしたところがサイトを確認しに来た時に、まだ全部のping送信が終わってない事がある
これを避けるためには並列処理が必須
もっと言うと、『更新ping送信自体をNucleusの外に任せた方がいい』んだけど、そこまではプラグインでは出来ないので…
話は変わって、『pingをバックグラウンドで送信』ってオプションがあるんですが、これ、CLIのphpに任せてます?
FreeBSDのportsってば、『CLIをインストールしない』オプションなんてのがあるんですが、CLIインストールしてないサーバだとどうなるんでしょう?
てかexec使っていいなら、ping送信そのものを全部execしちゃえば、(少なくともNucleus自体のレスポンス的には)並列処理とか考えなくていいんじゃ?
6 Responses to “ 懲りもせずにNP_Pingを改造してみようかと ”
Leave a Reply
このエントリにトラックバックはありません
この記事のトラックバックURL
http://shizuki.kinezumi.net/item_539.trackback(右クリックで'ショートカットの保存')
トラックバックするにはこの記事へのリンクhttp://shizuki.kinezumi.net/item_539.htmlが必要です

October 26th, 2007 at 02:31:59 改造版ですが、ここ1~2日中に仕上げてください ^^;
ってかまだオリジナルの NP_Ping のテストもしてなくて、一応日本語訳だけつけただけな状態です。で、例のバックグランド送信云々のところですが、原文の意味がよくわからななかったのでとりあえず「へぇ~バックグランドで送信できるんか?」ということで訳してあります。もしかしたら全然違ってたり ^^;
ところで、詳細は未確認ですが ping 送るのは JustPosted イベント時だと思うので、ping の送信途中でささっててもエントリ自体は公開済み状態なのかなぁとか思ったり。
October 26th, 2007 at 09:37:45 >造版ですが、ここ1~2日中に仕上げてください ^^;
うぃ、むしゅー
>ところで、詳細は未確認ですが ping 送るのは JustPosted イベント時
あ~んど SendPingイベント時なのでぃす
で、今もっかいコア確認してみると、この SendPing イベントって、addItemとupdateItemの両方で発生するようですね
今で言うところの PostAddItem と PostUpdateItem の後に ADMIN.phpに戻ってきたタイミングです
なので
>ping の送信途中でささっててもエントリ自体は公開済み状態なのかなぁとか思ったり。
公開済みではあるんですが、いつまでも投稿後の表示が更新されないという…
でバックグラウンド送信の方は、JustPosted イベントのときのみで、このチェックが入っていると
exec("php $DIR_PLUGINS/ping/ping.php " . $data['blogid'] . " &");
です
中身は、NP_Ping.php の SendPing() を実行してるだけです
何がバックグラウンドかというと…
通常アイテムの更新、追加時に画面に表示される
『ping送信中… テクノラティ』
とかいうのが、表示されない!
それだけです orz
記事にも書いたけど、CLIをインストールしてないとか、exec() を許可してないサーバだと使えません
コアからのスピンアウト機能として、これはアリなのかなぁ…と
October 26th, 2007 at 21:58:29 何を今更、だったらごめんなさいまし。
http://blog.cles.jp/item/2200
===
特にNP_SendPingは反応の遅いサーバがあるときに、そのサーバに足を引っ張られることなく待ち時間に違うサーバの処理をしてくれるのでかなり効果が見られるようです。
===
お~って思ってたんですけど、それって織り込み済み?
October 26th, 2007 at 22:00:50 ...と思ったら調査中の様子でしたね。
ひつれいしました(^_^;
October 27th, 2007 at 02:23:26 >まみおさん
>...と思ったら調査中の様子でしたね。
>ひつれいしました(^_^;
いえいえ、ありがとうございます
ところで、ウチのサイトで落ちなくなりました?
ところでevent_SendPingですが、アイテムの更新時にも発生する事が判明
更新のタイミングで『送信しない』オプションが欲しいところなんですが…
October 27th, 2007 at 02:38:56 アイテムの更新後、ping送信画面にリダイレクトされて、そこからさらに<META>タグでリダイレクトしてるんで、このリダイレクトより早く別ページにリダイレクトするようにコード追加
なにをどこでどう設定したのかさっぱり思い出せないけど、どうやらウチのFxは<META>タグのリダイレクトが聴かなくなってるんで、当然javascriptで