相关疑难解决方法(0)

Node.js获取请求ETIMEDOUT和ESOCKETTIMEDOUT

我使用Node.js的-异步及请求模块抓取100+百万计的网站,我不断碰到的错误ESOCKETTIMEDOUTETIMEDOUT几分钟后.

重新启动脚本后它再次起作用.它似乎不是连接限制问题,因为我仍然可以执行resolve4,resolveNs,resolveMx,也curl没有延迟.

你看到代码有什么问题吗?或任何建议?我想把async.queue()并发推高到至少1000.谢谢.

var request = require('request'),
    async = require('async'),
    mysql = require('mysql'),
    dns = require('dns'),
    url = require('url'),
    cheerio = require('cheerio'),
    iconv = require('iconv-lite'),
    charset = require('charset'),
    config = require('./spy.config'),
    pool = mysql.createPool(config.db);

iconv.skipDecodeWarning = true;

var queue = async.queue(function (task, cb) {
    dns.resolve4('www.' + task.domain, function (err, addresses) {
        if (err) {
            //
            // Do something
            //
            setImmediate(function () {
                cb()
            });
        } else {
            request({
                url: 'http://www.' + task.domain,
                method: 'GET', …
Run Code Online (Sandbox Code Playgroud)

javascript node.js node-request

15
推荐指数
2
解决办法
2万
查看次数

请求npm模块-解决ESOCKETTIMEDOUT

我正在使用请求npm模块,并以大约每秒100个请求的周期发出上游请求。超时已设置为10秒。问题是我一直在1000个请求中始终获得1个的ESOCKETTIMEDOUT。

我非常确定上游服务器不会超时。这可能是什么原因以及如何避免它。

request node.js npm

5
推荐指数
0
解决办法
3185
查看次数

标签 统计

node.js ×2

javascript ×1

node-request ×1

npm ×1

request ×1