module Patriot::Util::Retry
a mudule enables operations to be retried
Public Class Methods
execute_with_retry(retry_config = {}) { || ... }
click to toggle source
execute block and retry the block @param retry_config :num_retry the max number of retry, :wait_time retry interval @raise an exception thrown from the block @return return value of the block
# File lib/patriot/util/retry.rb, line 10 def execute_with_retry(retry_config = {}, &blk) retry_config = {:num_retry => 3, :wait_time => 3}.merge(retry_config) e = nil 1.upto(retry_config[:num_retry]) do |i| begin return yield rescue Exception => e if @logger @logger.error "fail to execute (#{i}) #{blk.to_s}" @logger.error e $@.each{|m| @logger.error m} end end sleep retry_config[:wait_time] end raise e unless e.nil? end
Private Instance Methods
execute_with_retry(retry_config = {}) { || ... }
click to toggle source
execute block and retry the block @param retry_config :num_retry the max number of retry, :wait_time retry interval @raise an exception thrown from the block @return return value of the block
# File lib/patriot/util/retry.rb, line 10 def execute_with_retry(retry_config = {}, &blk) retry_config = {:num_retry => 3, :wait_time => 3}.merge(retry_config) e = nil 1.upto(retry_config[:num_retry]) do |i| begin return yield rescue Exception => e if @logger @logger.error "fail to execute (#{i}) #{blk.to_s}" @logger.error e $@.each{|m| @logger.error m} end end sleep retry_config[:wait_time] end raise e unless e.nil? end