Class: Clerk::Utils::RetryMiddleware

Inherits:
Faraday::Retry::Middleware
  • Object
show all
Defined in:
lib/clerk/utils/retries.rb

Instance Method Summary collapse

Instance Method Details

#calculate_sleep_amount(retries, env) ⇒ Object



88
89
90
91
92
93
94
95
96
# File 'lib/clerk/utils/retries.rb', line 88

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