Class: Tenax::Retry::Backoff::Constant

Inherits:
Strategy
  • Object
show all
Defined in:
lib/tenax/retry/backoff/constant.rb

Overview

Constant delay between retry attempts.

Returns interval seconds for every attempt, regardless of attempt number.

Examples:

backoff = Tenax::Retry::Backoff::Constant.new(interval: 0.5)
backoff.delay_for(1) # => 0.5
backoff.delay_for(7) # => 0.5

Instance Method Summary collapse

Constructor Details

#initialize(interval:) ⇒ Constant

Returns a new instance of Constant.

Parameters:

  • interval (Numeric) —

    seconds to wait between attempts

Raises:

  • (ArgumentError) —

    if interval is negative



20
21
22
23
24
25
26
# File 'lib/tenax/retry/backoff/constant.rb', line 20

def initialize(interval:)
  raise ArgumentError, "interval must be non-negative, got #{interval}" if interval.negative?

  super()
  @interval = interval.to_f
  freeze
end

Instance Method Details

#delay_for(_attempt) ⇒ Float

Returns the configured interval.

Parameters:

  • _attempt (Integer) —

    ignored

Returns:

  • (Float) —

    the configured interval



30
31
32
# File 'lib/tenax/retry/backoff/constant.rb', line 30

def delay_for(_attempt, **)
  @interval
end