LinearBackoff returns a backoff-time that is incremented by a fixed amount with every step/retry. An optional maximum can be provided as an upper bound to the returned backoff.

The series can be described as ('i' is the current step/retry): backoff = initial + increment * i | without bound backoff = initial + increment * min(i, max) | with bound

Example:

  1. Without bound: initial = 1000, increment = 1000 backoff = 1000 + 1000 * 0 = 1000 // first retry backoff = 1000 + 1000 * 1 = 2000 // second retry backoff = 1000 + 1000 * 2 = 3000 // ...increases by 'increment' with every retry backoff = 1000 + 1000 * 3 = 4000 backoff = 1000 + 1000 * 4 = 5000 ... // and so on

  2. With bound: initial = 1000, increment = 1000, max = 5000 backoff = 1000 + 1000 * 0 = 1000 // first retry backoff = 1000 + 1000 * 1 = 2000 // second retry backoff = 1000 + 1000 * 2 = 3000 // third retry backoff = 1000 + 1000 * 3 = 4000 // fourth retry backoff = 1000 + 1000 * 4 = 5000 // maximum reached, don't increase further backoff = 1000 + 1000 * 4 = 5000 backoff = 1000 + 1000 * 4 = 5000 ... // and so on

Hierarchy

  • LinearBackoff

Implements

Constructors

Properties

Accessors

Methods

Constructors

  • Creates a new LinearBackoff.

    Parameters

    • initial: number

      the initial backoff-time in milliseconds

    • increment: number

      the amount to increment the backoff-time with every step (in milliseconds)

    • Optional max: number

      the maximum backoff-time (in milliseconds), no bound if undefined

    Returns LinearBackoff

Properties

_retries: number = 0
i: number = 0
increment: number
initial: number
max?: number

Accessors

  • get retries(): number
  • The number of retries. Starts at 0, increases by 1 for each call to next(). Resets to 0 when reset() is called.

    Returns number

Methods

Generated using TypeDoc