Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

back-off

4.3.0 • Public • Published

Back-Off

npm version Build Status Coverage Status

Circuit Breaker design pattern for JavaScript

circuit breaker

This module let's you use the Circuit Breaker pattern and call a function multiple times. In addition you can specify a delay to be applied between attempts as well as extending the delay as attempts are made.

Async/Await

const BackOff = require('back-off');
const backoff = new BackOff({
    times: 5, //number of times method should be called
    delay: 50, //delay in milliseconds between calls
    backoff: true // if the delay should be doubled between execution attempts
});
try {
  const result = await backoff.execute(asyncTask);
} catch (error) {
  //do something with the final error
}
 

Promise

const BackOff = require('back-off');
const backoff = new BackOff({
  times: 5, //number of times method should be called
  delay: 50, //delay in milliseconds between calls
  backoff: true // if the delay should be doubled between execution attempts
});
 
backoff.execute(() => {
  //do something here that may fail
})
.then(()=> {
  // do something else
})
.catch(() => {
  //attempts failed
});
 

The tests show the module in action.

Install

npm i back-off

DownloadsWeekly Downloads

7,009

Version

4.3.0

License

Unlicense

Unpacked Size

9.42 kB

Total Files

4

Last publish

Collaborators

  • avatar