class Retryer::Retry
Attributes
interval[RW]
max_retries[RW]
Public Class Methods
new(max_retries: 5, interval: 1, verbose: true)
click to toggle source
# File lib/retryer.rb, line 7 def initialize(max_retries: 5, interval: 1, verbose: true) @max_retries=max_retries @interval=interval @verbose=verbose end
Public Instance Methods
do(description: 'Operation') { || ... }
click to toggle source
# File lib/retryer.rb, line 13 def do(description: 'Operation') retries = 0 begin yield rescue Exception => e if retries < @max_retries sleep @interval retries += 1 puts "Retrying: '#{description}' (retries #{retries}) with caught exception: #{e}" if @verbose retry end raise "MAX RETRIES REACHED: '#{description}' failed after retrying #{@max_retries} times." end end