Skip to content

Handle callback retries with incremental backoff and timeout support.

License

Notifications You must be signed in to change notification settings

AudienseCo/retry-backoff

Repository files navigation

retry-backoff

Last version Build Status Dependency status Dev Dependencies Status NPM Status Donate

Handle callback retries with incremental backoff and timeout support.

Install

$ npm install retry-backoff --save

Usage

const createRetryBackoff = require('retry-backoff')

function fn (cb) {
  setTimeout(function () {
    return cb(null, {foo: 'bar'})
  }, 1000)
}

const retryBackoff = createRetryBackoff()

retryBackoff(fn, function (err, result) {
  if (err) throw err
  retryBackoff.reset()
  console.log(result) // => {foo: 'bar'}
})

If you need to see low level logs, enable it using DEBUG=retry-backoff.

API

retryBackoff([options])

Creates a backoff function.

options

timeout

Type: number
Default: 30000

Setup the time (in milliseconds) after consider a request timeout.

retries

Type: number
Default: 3

Number of retries before throw a final error.

backoff

Type: function
Default: 1000 * Math.pow(2, retry) + Math.random() * 100

The method uses for calculate the incremental delay between sucesive calls, where retry is attempt number (starts from 0).

.reset

Restart the retries counter.

License

MIT © AudienseCo

About

Handle callback retries with incremental backoff and timeout support.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published