« CometとAJAX CHATの作り方について整理 | メイン | MacBook Pro 買いました »

USR1シグナルでのCometの実装について

AJA Chat まとめのまとめ。USR1シグナルを送るとプロセスは再起動するらしい。

AJA Chatの動き

  • 参加者はXMLHttpRequestを使ってserv.cgiに繋ぐ。30秒後にserv.cgiからレスポンスが返ってきたら繋ぎなおす。この繰り返しで常時接続。
  • 書き込みがあった場合には、全参加者のserv.cgiプロセスに対してUSR1シグナルを送る。
  • serv.cgiはUSR1シグナルが来るとログを再読込(onreadystatechangeで監視)
ということでいいのかな。


サンプルがあったので試してみました。

以下のスクリプトを実行

#!perl
$SIG{'USR1'} = sub { print "ktkr!\n" };
while(1){ sleep 60 };

スクリプトのPIDに対してUSR1シグナルを送る

# kill -USR1 PID


シグナルを送る度にprintが実行されました。なるほど。

About

2006年12月22日 03:21に投稿されたエントリーのページです。

ひとつ前の投稿は「CometとAJAX CHATの作り方について整理」です。

次の投稿は「MacBook Pro 買いました」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。