« 久しぶりに CCOC'S | メイン | 腹へった。金が無い。 »
2004年10月30日
RSS Robot (2)
RSS Robot の挙動がおかしいので修正してみた。おかしいと感じたのは、リクエストを送信する時のタイムアウト処理。
修正後は、以下のようにした。
foreach my $href (@href) { eval { $SIG{'ALRM'} = sub { $out_sock++; next; }; alarm 1; my $sock = IO::Socket::INET->new("$s{$href}:80"); if (defined $sock) { $selecter->add($sock); $p{$sock} = $href; print $sock "GET /$r{$href} HTTP/1.0\r\n"; print $sock "Host: $s{$href}:80\r\n"; print $sock "\r\n"; $sock->flush(); } else { $out_sock++; } alarm 0; }; }
やばいなぁ。僕は alarm と eval の使い方をいまいち分かっていない。この書き方で正しいかどうかも微妙だし。
【関連記事】
・RSS Robot (2004年10月29日)
2004年10月30日 22:35 | Programming