使用asynchronous在Node.js中批量处理并行HTTP请求

我的代码大致如下:

readLine.on('line', function (line) { async.parallel([ function (callback) { // HTTP request #1 sent with accompanied JSON, get JSON as result }, function (callback) { // HTTP request #2 sent with accompanied JSON, get JSON as result }], function (error, results) { // write to local file }) 

我用line-by-line模块实现了inputstream。 我的问题是,一旦我的代码已经开始运行了30秒左右,我得到了ECONNREFUSEDECONNRESET错误,我认为这是因为我所有的TCP连接都被重载(所有的HTTP请求都转到本地主机服务器)。 这绝对没有帮助,我必须阅读的文本文件约20万行。

有没有办法分批处理线路和HTTP请求,并等待所有的请求都已经通过,并已成功返回,所以我不超载我的TCP套接字?
在此先感谢您的帮助和build议。

一个选项是使用async.queue ,它具有可configuration的并发性。

 var queue = async.queue(function(task, queueCallback) { async.parallel([ function (callback) { // HTTP request #1 sent with accompanied JSON, get JSON as result }, function (callback) { // HTTP request #2 sent with accompanied JSON, get JSON as result }], function (error, results) { // write to local file ... // call the queue callback queueCallback(error); }) }, 10); // 10 concurrent 'tasks' max readLine.on('line', function (line) { queue.push({ line : line }); });