2.0.0 • Published 7 months ago

retry-machine v2.0.0

Weekly downloads
1,257
License
Apache-2.0
Repository
github
Last release
7 months ago

Retry Machine

A simple and configurable utility for retrying promises with exponential backoff.

Installation

npm install retry-machine

or

yarn add retry-machine

Usage

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).
1.0.4

8 months ago

2.0.0

7 months ago

1.0.3

11 months ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.3.0

7 years ago

0.2.0

7 years ago

0.1.0

8 years ago