- blogs:
- cles::blog
« Amazon APIの認証方法が変更に :: HD800が発売に »
2009/05/11

Rubyでタイムアウトを実装する

Rubyで時間のかかる特定の処理に上限をつける方法を探していたら、そのものずばりtimeoutというクラスをみつけました。
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 TimeoutError が発生します。 exception_class を指定した場合には TimeoutError の代わりに その例外が発生します。
また sec が nil のときは制限時間なしで ブロックを実行します。
使い方も簡単なのでいいですね。ただ、Timeout::ErrorはStandardErroのサブクラスではないので、rescueと書いていないと補足できないということころはハマリやスそうかなという感じです。
require 'timeout'
begin
timeout(3){
10.times do |n|
puts n
sleep 1
end
}
rescue Timeout::Error
puts "Timeout!"
end
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/3038
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
« Amazon APIの認証方法が変更に :: HD800が発売に »
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . アーロンチェアのポスチャーフィットを修理(112062)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110691)
3 . 年次の人間ドックへ(110313)
4 . 2023 年分の確定申告完了!(1つめ)(109860)
5 . 三菱鉛筆がラミーを買収(109764)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110691)
3 . 年次の人間ドックへ(110313)
4 . 2023 年分の確定申告完了!(1つめ)(109860)
5 . 三菱鉛筆がラミーを買収(109764)
cles::blogについて
Referrers