class BarbequeClient::ExponentialRetry

Constants

MAX_DELAY_SECONDS

Public Class Methods

exponential_backoff(count) click to toggle source

github.com/mperham/sidekiq/blob/v4.1.2/lib/sidekiq/middleware/server/retry_jobs.rb#L176-L179 @return [Integer] seconds

# File lib/barbeque_client/exponential_retry.rb, line 7
def self.exponential_backoff(count)
  (count ** 4) + 15 + (rand(30) * (count + 1))
end
new(count) click to toggle source

@param [Integer] count - Count of retry

# File lib/barbeque_client/exponential_retry.rb, line 12
def initialize(count)
  @count = count
end

Public Instance Methods

retry(message_id) click to toggle source

@param [String] message_id

# File lib/barbeque_client/exponential_retry.rb, line 17
def retry(message_id)
  BarbequeClient.client.retry_execution(
    message_id:    message_id,
    delay_seconds: [delay_seconds, MAX_DELAY_SECONDS].min,
  )
end

Private Instance Methods

delay_seconds() click to toggle source
# File lib/barbeque_client/exponential_retry.rb, line 26
def delay_seconds
  ExponentialRetry.exponential_backoff(@count)
end