我试图对某些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()
的方法。
是否有可能执行那么多请求或机器或服务器的任何依赖性。