Node Js:是否可以从节点js服务器向某些api发出1000 http get请求

时间:2016-02-09 20:11:57

标签: javascript node.js http asynchronous

我试图对某些web api(abc.com/query?val=somekey)执行近2000+个同时的http get请求。下面是我的代码。

async.each(keysArray,function(key,callback1){
  sails.http.get({
    hostname:'abc.com',
    path:'/query?val='+key,
    headers:{
      "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
      "User-Agent":"MYBROWSER"
    }
  },function(response){
    var str='';
    response.on('data',function(chunk){
      str+=chunk;
    });
    response.on('end',function(){
      console.log(new Buffer(str,'utf8'));
    //  some job on each str from each key
    });
  });
});

keysArray的长度大约是2000.所以上面的代码执行了近2000个http get request.But我得到的错误就像

events.js:141
      throw er; // Unhandled 'error' event
      ^

Error: read ECONNRESET
    at exports._errnoException (util.js:870:11)
    at TCP.onread (net.js:544:26)

虽然我找到了一种限制并发使用async.eachLimits()的方法。 是否有可能执行那么多请求或机器或服务器的任何依赖性。

0 个答案:

没有答案