An exponential backoff implementation for Node.js.
npm install backoff
The Backoff object inherits from EventEmitter. One can listen for backoff completion by listening for 'backoff' events. Registered handlers will be called with the current backoff number and delay.
var Backoff = require('backoff');
var backoff = new Backoff();
backoff.on('backoff', function(number, delay) {
// Retry operation...
backoff.backoff();
});
backoff.backoff();
It's also possible to reset 'Backoff' instance. Once reset, a 'Backoff' instance can be reused. On reset, the 'reset' event will be emitted.
var Backoff = require('backoff');
var backoff = new Backoff();
backoff.on('backoff', function(number, delay) {
backoff.backoff();
});
backoff.on('reset', function() {
console.log('reset');
});
backoff.backoff();
setTimeout(function() {
backoff.reset();
}, 5000);