注意: このページは最後に更新されてから 2052 日が経過している記事です。 文章が腐敗している可能性があります。その点を考慮した上で確認ください。

Library:retry-handlerについて

提供: kimoto's wiki

俺の作ったretry-handlerの使い方についての説明

概要

例外があった時に指定回数自動でリトライしてくれるライブラリです。

インストール

gem install lurker-retry-handler

使い方

require 'rubygems' #必要に応じて
require 'retry-handler'

Proc.new{
  puts "hoge!"
  raise "anything error"
}.retry(:accept_exception => StandardError)

これらの実行例

$ ruby test.rb
hoge!
hoge!
hoge!
hoge!
/home/kimoto29/local/lib/ruby/gems/1.9.1/gems/lurker-retry-handler-0.0.1/lib/retry-handler.rb:37:in `rescue in _retry_handler': RetryOverError
        from /home/kimoto29/local/lib/ruby/gems/1.9.1/gems/lurker-retry-handler-0.0.1/lib/retry-handler.rb:30:in `_retry_handler'
        from /home/kimoto29/local/lib/ruby/gems/1.9.1/gems/lurker-retry-handler-0.0.1/lib/retry-handler.rb:19:in `retry_handler'
        from /home/kimoto29/local/lib/ruby/gems/1.9.1/gems/lurker-retry-handler-0.0.1/lib/retry-handler.rb:51:in `retry'
        from test.rb:3:in `<main>'

詳細はソース見たほうが早いです https://github.com/kimoto/retry-handler/blob/master/lib/retry-handler.rb

追加されるメソッド

  • Proc#retry(options={})
    • Proc内にて例外が発生した場合、指定回数リトライさせることが出来ます。
  • Kernel#retry-handler(options={}, &block)
    • 指定されたブロック内にて例外が発生した場合、指定回数自動リトライさせることができます。