class Stripe::StripeClient
def self.sleep_time(num_retries, config: Stripe.config)
def self.sleep_time(num_retries, config: Stripe.config) # Apply exponential backoff with initial_network_retry_delay on the # number of num_retries so far as inputs. Do not allow the number to # exceed max_network_retry_delay. sleep_seconds = [ config.initial_network_retry_delay * (2**(num_retries - 1)), config.max_network_retry_delay, ].min # Apply some jitter by randomizing the value in the range of # (sleep_seconds / 2) to (sleep_seconds). sleep_seconds *= (0.5 * (1 + rand)) # But never sleep less than the base sleep seconds. [config.initial_network_retry_delay, sleep_seconds].max end