Module: OMQ::QoS::RetryScheduler

Defined in:
lib/omq/qos/retry_scheduler.rb

Overview

Computes exponential backoff delays for QoS 3 retries.

range.begin is the first-retry delay. Each subsequent retry doubles the delay, capped at range.end.

Class Method Summary collapse

Class Method Details

.delay(retry_count, range) ⇒ Numeric

Returns seconds to sleep before the next retry attempt.

Parameters:

  • retry_count (Integer)

    number of retries already attempted (0 before the first retry)

  • range (Range)

    retry_backoff configuration (min..max)

Returns:

  • (Numeric)

    seconds to sleep before the next retry attempt



15
16
17
18
19
# File 'lib/omq/qos/retry_scheduler.rb', line 15

def self.delay(retry_count, range)
  return range.begin if retry_count <= 0
  scaled = range.begin * (2 ** retry_count)
  scaled < range.end ? scaled : range.end
end