Method: DatadogAPIClient::APIClient#calculate_retry_interval

Defined in:
lib/datadog_api_client/api_client.rb

#calculate_retry_interval(response, backoff_base, backoff_multiplier, attempt, timeout) ⇒ Object

Calculate the sleep interval between 2 retry attempts



141
142
143
144
145
146
147
148
149
150
151
152
# File 'lib/datadog_api_client/api_client.rb', line 141

def calculate_retry_interval(response, backoff_base, backoff_multiplier, attempt, timeout)
  reset_header = response.headers['X-Ratelimit-Reset']
  if  !reset_header.nil? && !reset_header.empty?
    sleep_time = reset_header.to_i
  else
    sleep_time = (backoff_multiplier**attempt) * backoff_base
    if timeout && timeout > 0
      sleep_time = [timeout, sleep_time].min
    end
  end
  sleep_time
end