class Greenjaguar::Retrier
Public Class Methods
new(policy, &block)
click to toggle source
# File lib/greenjaguar/retrier.rb, line 4 def initialize(policy, &block) @policy = policy @retry_block = block exec end
Private Instance Methods
decrement_retry_count()
click to toggle source
# File lib/greenjaguar/retrier.rb, line 36 def decrement_retry_count @policy.count -= 1 end
exec()
click to toggle source
# File lib/greenjaguar/retrier.rb, line 11 def exec @start_time = Time.new begin @retry_block.call rescue => e raise unless @policy.valid_exception? e if @policy.never_give_up? @policy.wait retry else if time_out? || retry_count_reached? raise unless @policy.fail_silently? else decrement_retry_count @policy.wait retry end end end end
retry_count_reached?()
click to toggle source
# File lib/greenjaguar/retrier.rb, line 40 def retry_count_reached? @policy.count == 0 end
time_out?()
click to toggle source
# File lib/greenjaguar/retrier.rb, line 32 def time_out? Time.now - @start_time > @policy.timeout end