Class: Prefab::ExponentialBackoff

Inherits:
Object
  • Object
show all
Defined in:
lib/prefab/exponential_backoff.rb

Instance Method Summary collapse

Constructor Details

#initialize(max_delay:, initial_delay: 2, multiplier: 2) ⇒ ExponentialBackoff

Returns a new instance of ExponentialBackoff.



3
4
5
6
7
8
# File 'lib/prefab/exponential_backoff.rb', line 3

def initialize(max_delay:, initial_delay: 2, multiplier: 2)
  @initial_delay = initial_delay
  @max_delay = max_delay
  @multiplier = multiplier
  @delay = initial_delay
end

Instance Method Details

#callObject



10
11
12
13
14
# File 'lib/prefab/exponential_backoff.rb', line 10

def call
  delay = @delay
  @delay = [@delay * @multiplier, @max_delay].min
  delay
end