auto-retry
v1.4.0
Published
Exponentially retry any promise returning function when it fails, automatically
Downloads
8,060
Readme
auto-retry
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 });