class EasybillRestClient::RetryOn
Attributes
logger[R]
retry_cool_off_time[R]
tries[R]
Public Class Methods
new(logger, tries, retry_cool_off_time)
click to toggle source
# File lib/easybill_rest_client/retry_on.rb, line 7 def initialize(logger, tries, retry_cool_off_time) @logger = logger @tries = tries @retry_cool_off_time = retry_cool_off_time end
Public Instance Methods
retry_on(klass, &block)
click to toggle source
# File lib/easybill_rest_client/retry_on.rb, line 13 def retry_on(klass, &block) Retryable.retryable(retryable_opts(klass), &block) end
Private Instance Methods
log_open_timeout(_exception)
click to toggle source
# File lib/easybill_rest_client/retry_on.rb, line 38 def log_open_timeout(_exception) logger.warn("Unable to open connection after #{Request::OPEN_TIMEOUT}s, retrying...") end
log_too_many_requests(_exception)
click to toggle source
# File lib/easybill_rest_client/retry_on.rb, line 42 def log_too_many_requests(_exception) logger.warn('Too many requests!') end
retryable_opts(klass)
click to toggle source
# File lib/easybill_rest_client/retry_on.rb, line 21 def retryable_opts(klass) { EasybillRestClient::TooManyRequests => { tries: tries, sleep: retry_cool_off_time, on: klass, exception_cb: method(:log_too_many_requests) }, Net::OpenTimeout => { tries: tries, sleep: 0, on: klass, exception_cb: method(:log_open_timeout) } }.fetch(klass) end