2.0.0 • Published 1 year ago
retry-machine v2.0.0
Retry Machine
A simple and configurable utility for retrying promises with exponential backoff.
Installation
npm install retry-machineor
yarn add retry-machineUsage
retry-machine provides a flexible way to handle retries in your promises
with support for exponential backoff and optional logging.
import { retry } from 'retry-machine';
async function run(attempt) {
console.log(`Attempt ${attempt}`);
if (Math.random() < 0.7) {
throw new Error('Random failure');
}
return 'Success!';
}
async function failure(error, attemptsRemaining) {
console.error(e);
}
const runner = retry({ max: 5, delay: 1000, factor: 2, maxDelay: 5000 }, failure);
await runner(run, 1);Configuration options
max: The maximum number of attempts to retry the function. Default is 3.delay: The initial delay between attempts, in milliseconds. Default is 1000.factor: The exponential backoff factor. Default is 1.logger: Optional logger to log failures and retry attempts.maxDelay: The maximum delay between attempts, in milliseconds. Default is 30000 (30 seconds).