auto-retry

Exponentially retry any promise returning function when it fails, automatically

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
auto-retry
401.4.07 years ago7 years agoMinified + gzip package size for auto-retry in KB

Readme

auto-retry
npm package
Build Status Coverage Status

Description

Automatically add exponential retry abilities to any function that returns a promise, only rejecting after the retries fail.

Installation

$ npm install auto-retry

Example

const requestPromise = require('request-promise');
const autoRetry = require('auto-retry');

// Construct a new function with automatic retry capabilities
const requestWithRetry = autoRetry(requestPromise);

// Make a request
requestWithRetry('http://www.vimeo.com')
    .then((response) => {
        // Process html as usual
    })
    .catch((error) => {
        // Only called after 3 failed attempts
    });

Documentation

autoRetry(fn, options) ⇒ function

Higher order function that makes any promise-returning-function retryable with a jitter'd exponential backoff.
| Param | Type | Description | | --- | --- | --- | | fn | function | Function to be made retryable. | | options | Object | Configuration. | | options.backoffBase | Number | Base interval for backoff wait time (in ms). | | options.logRetries | Boolen | Log retry attempts to the console. | | options.maxRetries | Number | Total number of retries. | | options.retryCount | Number | Current retry count. | | options.onRetry | function | Function to be called after each failed attempt. |
// Construct a new function to only retry once
const requestWithRetry = autoRetry(requestPromise, { maxRetries: 1 });


// Set a minimum backoff interval to 2 seconds
const requestWithRetry = autoRetry(requestPromise, { backoffBase: 2000 });