Method: FFWD::Retrier#initialize

Defined in:
lib/ffwd/retrier.rb

#initialize(timeout, &block) ⇒ Retrier

Returns a new instance of Retrier.



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/ffwd/retrier.rb', line 27

def initialize timeout, &block
  @block = block
  @timer = nil
  @timeout = timeout
  @max_timeout = timeout * 2**MAX_FACTOR
  @current_timeout = @timeout
  @attempt = 0
  @error_callbacks = []

  starting do
    try_block
  end

  stopping do
    if @timer
      @timer.cancel
      @timer = nil
    end
  end
end