@ambassify/backoff-strategies
v1.0.0
Published
Backoff strategies for retrying things like HTTP requests.
Downloads
888
Readme
backoff-strategies
Backoff strategies for retrying things like HTTP requests.
Installation
npm install --save @ambassify/backoff-strategies
Usage
Strategies are attached to the default import of this package and can be accessed using.
Every strategy will return a new function that accepts the amount of attempts that were previously executed as its only parameter and returns the matching delay.
const { exponential, linear } = require('@ambassify/backoff-strategies');
// Usage:
const linearDelayGenerator = linear(50);
linearDelayGenerator(0); // 0
linearDelayGenerator(1); // 50
linearDelayGenerator(2); // 100
Strategies
constant
function constant(delay) {}
f(x) = delay
Always returns the same delay, no matter how many attempts are passed in.
linear
function linear(delay) {}
f(x) = x * delay
The delay shows linear growth for every attempt.
exponential
function exponential(delay, factor = 2) {}
f(x) = (factor ^ (x - 1)) * delay
(exception: f(0) = 0
)
The delay shows exponential growth by a specific factor
binary exponential
function binaryExponential(delay) {}
f(x) = random(0, ((2 ^ x) − 1)) * delay
The delay shows binary exponential growth as explained here
Contribute
We really appreciate any contribution you would like to make, so don't hesitate to report issues or submit pull requests.
License
This project is released under a MIT license.
About us
If you would like to know more about us, be sure to have a look at our website, or our Twitter accounts Ambassify, Sitebase, JorgenEvens