request-replay

Replays a request when a network error occurs using the retry module.
DO NOT use this module if you are piping request
instances.
If you are listening to data
events to buffer, beware that you must reset everything when a replay
occurs.
This is why pipping
is not supported.
Installation
$ npm install request-replay
Usage
var fs = require('fs');
var request = require('request');
var replay = require('request-replay');
replay(request('http://google.com/doodle.png', { timeout: 10000 }, function (err, response, body) {
}), {
retries: 10,
factor: 3
})
.on('socket', function (socket) {
socket.setTimeout(10000, socket.end.bind(socket));
})
.on('replay', function (replay) {
console.log('request failed: ' + replay.error.code + ' ' + replay.error.message);
console.log('replay nr: #' + replay.number);
console.log('will retry in: ' + replay.delay + 'ms')
});
Note that the default retry options are modified to be more appropriate for requests:
retries
: The maximum amount of times to retry the operation. Default is 5
.factor
: The exponential factor to use. Default is 2
.minTimeout
: The amount of time before starting the first retry. Default is 2000
.maxTimeout
: The maximum amount of time between two retries. Default is 35000
.randomize
: Randomizes the timeouts by multiplying with a factor between 1
to 2
. Default is true
.
License
Released under the MIT License.