LWPのtimeout
LWPでtimeout設定できるけど、
あれって相手鯖につながった上で応答もらえない場合は効かないんだね。
10秒timeoutの予定が、止まってた。
LWPのtimeoutを使わずに、
$ua->request($req);
return($res->content);
な感じだったら、
eval{
local $SIG{'ALRM'}=sub{die("timeout")};
alarm(10);
$res=$ua->request($req);
alarm(0);
};
return($@) if($@);
return($res->content);
ってな感じで、alarm捕捉して、
evalでdie捕捉する感じにしないといけないらしい。
めんどいねえ・・・
LWP以外に、CurlとかFurlってのもあるらしくて、
そいつらはちゃんとtimeoutできるらしいんだが、
FurlはUbuntuのリポジトリになかったから却下。
Curlって奴は、なんか説明書見るとコード量が多くてalarm使うより複雑になっちゃう感じ。
LWP以外は情報少ないしねえ。