Method: Payjp.get_retry_delay
- Defined in:
- lib/payjp.rb
.get_retry_delay(retry_count, retry_initial_delay, retry_max_delay) ⇒ Object
71 72 73 74 75 76 77 78 79 |
# File 'lib/payjp.rb', line 71 def self.get_retry_delay(retry_count, retry_initial_delay, retry_max_delay) # Get retry delay seconds. # Based on "Exponential backoff with equal jitter" algorithm. # https://aws.amazon.com/jp/blogs/architecture/exponential-backoff-and-jitter/ wait = [retry_max_delay, retry_initial_delay * 2 ** retry_count].min random = Random.new() (wait / 2) + (random.rand(wait / 2.0)) end |