Class: Philiprehberger::WebhookBuilder::Backoff::Linear

Inherits:
Object
  • Object
show all
Defined in:
lib/philiprehberger/webhook_builder/backoff.rb

Overview

Linear backoff: base * attempt, capped at max_delay.

Instance Method Summary collapse

Constructor Details

#initialize(base: 1, max_delay: 30) ⇒ Linear

Returns a new instance of Linear.

Parameters:

  • base (Numeric) (defaults to: 1)

    base delay in seconds (default: 1)

  • max_delay (Numeric) (defaults to: 30)

    maximum delay in seconds (default: 30)



30
31
32
33
# File 'lib/philiprehberger/webhook_builder/backoff.rb', line 30

def initialize(base: 1, max_delay: 30)
  @base = base
  @max_delay = max_delay
end

Instance Method Details

#call(attempt) ⇒ Float

Returns delay in seconds.

Parameters:

  • attempt (Integer)

    the current attempt number (1-based)

Returns:

  • (Float)

    delay in seconds



37
38
39
# File 'lib/philiprehberger/webhook_builder/backoff.rb', line 37

def call(attempt)
  [@base * attempt, @max_delay].min.to_f
end