Class: Kombo::Utils::RetryMiddleware

Inherits:
Faraday::Retry::Middleware
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/kombo/utils/retries.rb

Instance Method Summary collapse

Instance Method Details

#calculate_sleep_amount(retries, env) ⇒ Object



101
102
103
104
105
106
107
108
109
# File 'lib/kombo/utils/retries.rb', line 101

def calculate_sleep_amount(retries, env)
  retry_after = [calculate_retry_after(env), calculate_rate_limit_reset(env)].compact.max
  retry_interval = calculate_retry_interval(retries)
  return retry_interval if retry_after.nil?

  # unlike the stock middleware, cap server delays at max_interval rather
  # than abandoning the retry
  [[retry_after, @options.max_interval].min, retry_interval].max
end