サーバーのレスポンスがない場合10秒でタイムアウトさせる処理をおこなっていますが、アラームがききません。
通信を行うという処理でなければ問題なくアラームがきくのですが、なぜか通信の処理となるときかなくなります。
local $SIG{ALRM} = sub { die "timeout" };を記述しなけば、「アラームクロック」と出力されてスクリプトは止まります。
eval {
local $SIG{ALRM} = sub { die "timeout" };
alarm 10;
# twitterAPIに接続
$twitter->user_timeline();
};
if ($@) {
if ($@ =~ /^timeout/) {
#タイムアウト時処理
}
else {
#その他エラー時処理
}
}
なんとかタイムアウトさせたいのですが、何か解決法わかればご教示ください。
よろしくお願いします。
コメント(0件)