我正在尝试在超时或错误时自动重试 HTTP 请求。
目前我的代码如下所示:
var req = http.get(url, doStuff)
.on('error', retry)
.setTimeout(10000, retry);
但是,单个请求有时可能会同时触发“错误”和“超时”事件。实施重试的更好方法是什么?
我一直在寻找同样的东西并发现了有趣的模块请求重试 https://www.npmjs.com/package/requestretry,非常适合这样的要求。
这是用法:
var request = require('requestretry')
request({
url: myURL,
json: true,
maxAttempts: 5, // (default) try 5 times
retryDelay: 5000, // (default) wait for 5s before trying again
retrySrategy: request.RetryStrategies.HTTPOrNetworkError // (default) retry on 5xx or network errors
}, function(err, response, body){
// this callback will only be called when the request succeeded or after maxAttempts or on error
if (response) {
console.log('The number of request attempts: ' + response.attempts);
}
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)