Class: BackoffWaiter

Inherits:
Waiter show all
Defined in:
lib/record_store/provider/provider_utils/waiter.rb

Instance Attribute Summary

Attributes inherited from Waiter

#message

Instance Method Summary collapse

Constructor Details

#initialize(message, initial_delay:, multiplier:, max_delay: nil) ⇒ BackoffWaiter

Returns a new instance of BackoffWaiter.



25
26
27
28
29
30
31
# File 'lib/record_store/provider/provider_utils/waiter.rb', line 25

def initialize(message, initial_delay:, multiplier:, max_delay: nil)
  super(message)

  @initial_delay = @current_delay = initial_delay
  @multiplier = multiplier
  @max_delay = max_delay
end

Instance Method Details

#resetObject



33
34
35
# File 'lib/record_store/provider/provider_utils/waiter.rb', line 33

def reset
  @current_delay = @initial_delay
end

#wait(message: @message) ⇒ Object



37
38
39
40
# File 'lib/record_store/provider/provider_utils/waiter.rb', line 37

def wait(message: @message)
  super(@current_delay, message: message)
  @current_delay = [@current_delay * @multiplier, @max_delay].compact.min
end