Module: ExponentialBackoff

Defined in:
lib/exponential_backoff.rb

Defined Under Namespace

Classes: FailedRequest

Class Method Summary collapse

Class Method Details

.try(max_tries, &block) ⇒ Object

Raises:



2
3
4
5
6
7
8
9
10
11
12
13
14
# File 'lib/exponential_backoff.rb', line 2

def self.try(max_tries, &block)
  errors = []
  1.upto max_tries do |n|
    begin
      return block.call
    rescue => err
      errors << err
      wait(n)
      next
    end
  end
  raise FailedRequest.new(errors)
end