Skip to content

u-ichi/retry-handler

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

retry-handler

easy retry handling

What is this

このライブラリは失敗した時にN回リトライするという処理を簡単に記述することが出来るモジュールです。

Proc.new{
  # なんかエラーの起こるコード
}.retry(:max => 3, :accept_exception => StandardError)

とか書いておくとなんかProc内で例外(この場合はStandardErrorなので、ほとんどの例外が対象)が発生した時最大3回まで、Procのコードをリトライしてくれるというのが簡単にかける。

また:waitというオプションがあり、これ指定するとエラーがあったとき、3秒間waitのあと、次の試行してくれるようになる。retry-handler自体の処理の流れを可視化したいときは:loggerオプションを付加すると良い。

lambda{}.retry(:max => 3, :wait => 3)
lambda{}.retry(:max => 3, :wait => 3, :logger => Logger.new(STDERR)

ちなみにProc.newと書くのがダサいときは、lambdaでもbegin-endでも使える

lambda{}.retry(:max => 3)

begin
end.retry(:max => 3)

Method#retryの使い方

たとえばFile.readをretryableにするコード例です

File.method(:read).retry("./not_found.txt", :accept_exception => StandardError, :logger => Logger.new(STDERR))

How to Install

Works on Ruby1.8/1.9

gem install retry-handler

Author

lurker(kimoto)

About

Ruby - Easy retry handling

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%