Skip to content

bhstahl/auto-retry

Repository files navigation

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 });