httplease-retry
Advanced tools
Comparing version 0.3.2 to 0.4.0
'use strict'; | ||
const createFailoverRetryFilter = require('./lib/failover-retry-filter'); | ||
module.exports = { | ||
createRetryFilter: require('./lib/retryFilter') | ||
createRetryFilter: createFailoverRetryFilter, | ||
createFailoverRetryFilter, | ||
createBackoffRetryFilter: require('./lib/backoff-retry-filter') | ||
}; |
{ | ||
"name": "httplease-retry", | ||
"version": "0.3.2", | ||
"version": "0.4.0", | ||
"description": "Retry filter for httplease", | ||
@@ -39,8 +39,9 @@ "main": "index.js", | ||
"eslint-config-jbunton": "0.0.3", | ||
"httplease": "^0.5.2", | ||
"jasmine": "^3.0.0", | ||
"httplease": "^0.7.0", | ||
"jasmine": "^3.2.0", | ||
"jasmine-http-server-spy": "^0.3.1", | ||
"jasmine-promise-tools": "^1.0.0", | ||
"nyc": "^11.0.3" | ||
"nyc": "^11.0.3", | ||
"proxyquire": "^2.1.0" | ||
} | ||
} |
@@ -5,5 +5,9 @@ ![build-status](https://bitbucket-badges.atlassian.io/badge/atlassianlabs/httplease-retry.svg) | ||
Request retries with optional fallback to alternate servers as an [httplease](https://bitbucket.org/atlassianlabs/httplease) filter. | ||
Provides two different retry mechanisms, backoff and failover retrying as an [httplease](https://bitbucket.org/atlassianlabs/httplease) filter. | ||
Failover retry filter retries requests with optional fallback to alternate servers. | ||
Backoff retry filter will retry against the same server until the retryTimeout limit has been reached. | ||
By default it will retry if 429s and 503s are received, but this logic can be changed by specifying 'shouldRetryFn'. | ||
# Usage guide | ||
@@ -20,3 +24,3 @@ | ||
## Simple request | ||
## Example - Failover retry | ||
@@ -29,3 +33,7 @@ ``` | ||
const retryConfig = { | ||
shouldRetryFn: (err, attempts, url) => true, | ||
shouldRetryFn: ({ | ||
error, // The error from httplease | ||
attempts, // Number of attempts | ||
requestConfig, // httplease requestConfig | ||
}) => true, | ||
maxAttempts: 2, | ||
@@ -41,3 +49,3 @@ retryDelayMillis: 50, | ||
const httpClient = httplease.builder() | ||
.withFilter(httpleaseRetry.createRetryFilter(retryConfig)); | ||
.withFilter(httpleaseRetry.createFailoverRetryFilter(retryConfig)); | ||
@@ -52,2 +60,31 @@ | ||
## Example - Backoff retry | ||
``` | ||
const httplease = require('httplease'); | ||
const httpleaseRetry = require('httplease-retry'); | ||
const retryConfig = { | ||
retryTimeoutMillis: 10 * 1000 //Retries for a maximum of 10 seconds after the Request started | ||
shouldRetryFn: ({ | ||
error, // The error from httplease | ||
attempts, // Number of attempts | ||
requestConfig, // httplease requestConfig | ||
startTimestamp // The timestamp the when the request started | ||
}) = attempts > 5 // Example to stop retrying after 5 attempts | ||
}; | ||
// this can be saved and reused as many times as you want | ||
const httpClient = httplease.builder() | ||
.withFilter(httpleaseRetry.createBackoffRetryFilter(retryConfig)); | ||
// make a request | ||
httpClient | ||
.withPath('/some-resource') | ||
.withMethodGet() | ||
.send(); | ||
``` | ||
# Development guide | ||
@@ -54,0 +91,0 @@ |
9107
7
93
139
8