class Integer

Public Instance Methods

times_retry(message: true, wait: 0) { |n| ... } click to toggle source

例外ならばブロックを n 回リトライする

# File lib/kaki/utils/retry.rb, line 3
def times_retry(message: true, wait: 0)
  n = 1
  begin
    yield(n)
  rescue => e
    if n <= self
      puts "Error: retry #{n}" if message
      puts e.backtrace if message
      n += 1
      sleep(wait)
      retry
    end
    puts "Error: stop" if message
    raise e
  end
end