nodejs请求知道何时重试

时间:2014-09-08 10:49:44

标签: node.js request

我的互联网速度缓慢且不稳定(高峰时段约20KBPS,上午0100~0400可能达到400KBPS)......

所以我会说下载的东西比成功更失败。 ECONNRESET几乎每次都会发生

所有这些限制让我想到尽可能减少互联网连接..

我的代码通常是下载并且如果失败则重试2-3次然后保留它并且永远不会返回哪个是坏的。

我想知道是否可以重试nodejs中的请求库的某些请求并获得成功。 404和ENOTFOUND之类的东西肯定不需要重试,而ECONNRESET肯定需要重试。我真的没有太多线索。

那么什么条件会证明重试可能会给出成功的结果呢? 或者也许是什么条件会证明重试肯定不会产生任何结果?

我找到了更多像EAGAIN这样的东西,可能意味着网站已关闭,但它存在......

1 个答案:

答案 0 :(得分:1)

您可以检查回调中的错误对象

var request = require('request');
request('http://www.google.com', function (error, response, body) {

    if (error) {
      // retry logic
    }
    if (!error && response.statusCode == 200) {
    console.log(body) // Print the google web page.
    }
})