Skip to content

Commit

Permalink
Merge 67c4759 into 86cc63d
Browse files Browse the repository at this point in the history
  • Loading branch information
batmat committed Sep 14, 2018
2 parents 86cc63d + 67c4759 commit d213d4b
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
11 changes: 10 additions & 1 deletion index.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,16 @@ class rpRetry {
logger.info(`Encountered error ${err.message} for ${options.method} request to ${options.uri}, retry count ${tryCount}`);
tryCount -= 1;
if (tryCount) {
return fetchDataWithRetry(tryCount);
let delay = options.delay || 100; // default delay between retries
if (options.factor) {
delay *= options.factor;
}
return new Promise((resolve, reject) => {
setTimeout(() => {
logger.debug(`waiting for ${delay} ms before next retry for ${options.uri}`);
resolve(fetchDataWithRetry(tryCount));
}, delay);
});
}
return Promise.reject(err);
});
Expand Down
14 changes: 14 additions & 0 deletions test/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -102,4 +102,18 @@ describe('request-promise-retry', function () {
expect(data.error).equal(undefined);
});
});
it('should pass, retry with exponential backoff', () => {
// failure should take a bit of time to happen
const startTime = new Date();
return rp({
uri: 'http://adadadadad.com/',
method: 'GET',
retry: 5,
delay: 200,
factor: 1.1 //
})
.catch(error => {
expect(new Date() - startTime).to.be.above((5 - 1) * 200);
});
});
});

0 comments on commit d213d4b

Please sign in to comment.