class Bogo::Retry::Exponential

Exponential retry implementation

Attributes

wait_exponent[R]

@return [Numeric]

wait_interval[R]

@return [Numeric]

Public Class Methods

new(args={}, &block) click to toggle source

Create a new linear retry instance

@param args [Hash] @option args [Numeric] :wait_interval Defaults to 5 seconds @option args [Numeric] :wait_exponent Defaults to 2 @return [self]

Calls superclass method Bogo::Retry::new
# File lib/bogo/retry.rb, line 181
def initialize(args={}, &block)
  @wait_interval = args[:wait_interval].to_f
  @wait_exponent = args[:wait_exponent].to_f
  unless(@wait_interval > 0)
    @wait_interval = 5
  end
  unless(@wait_exponent > 0)
    @wait_exponent = 2
  end
  super
end

Protected Instance Methods

wait_on_failure(*_) click to toggle source

@return [Numeric] wait time

# File lib/bogo/retry.rb, line 196
def wait_on_failure(*_)
  retries == 0 ? wait_interval : (wait_interval + retries) ** wait_exponent
end