Javascript 在http请求节点js的循环中获取ENOBUFS

Javascript 在http请求节点js的循环中获取ENOBUFS,javascript,node.js,Javascript,Node.js,一些背景: 我要做的是从客户端接收一个带有一些ID的CSV文件。 我在文件上运行,对于我生成的每个ID,需要进行一个rest查询,然后再进行另一个rest查询 当我对1000到5000个ID执行此操作时,此操作效果良好,但在这之后,我在日志中的大多数响应都是错误,而不是“200” 错误是: [Error: connect ENOBUFS XX.XX.XX.XXX:8080 - Local (undefined:undefined)] code: 'ENOBUFS', errno: 'EN

一些背景:
我要做的是从客户端接收一个带有一些ID的CSV文件。 我在文件上运行,对于我生成的每个ID,需要进行一个rest查询,然后再进行另一个rest查询

当我对1000到5000个ID执行此操作时,此操作效果良好,但在这之后,我在日志中的大多数响应都是错误,而不是“200”

错误是:

[Error: connect ENOBUFS XX.XX.XX.XXX:8080 - Local (undefined:undefined)]
  code: 'ENOBUFS',
  errno: 'ENOBUFS',
  syscall: 'connect',
  address: 'XX.XX.XX.XXX',
  port: 8080 
我在类似问题上看到的建议是使用
async.eachofflimit
,这样可以发出少量请求,但对于某些请求,在第一次迭代后不会继续。
-如果需要模块,请参阅文档

简单代码说明:

router.post('/upload', function(req, res, next) {
.
.
.
    async.eachOfLimit(ids,100, CheckAndUpdate);
});

function CheckAndUpdate(DirtyId, callback){
   request({
     uri:  "http://XX.XX.XX.XXX:8080/rest/getTureIDs" + DirtyId, ",
     json: true
   }, function(err, res, data) {
     if (err) {
       console.log('Error:', err);
     } else if (res.statusCode !== 200) {
       console.log('Status:', res.statusCode);
     } else {
       if (data["TrueIDs"].length > 0){
         for (var index in data["TrueIDs"]){
           var fetchedID = data["TrueIDs"][index]["id"];
           UpdateSomethingForID(fetchedID);
         }
       }
     }
   });
}

function UpdateSomethingForID(ID, callback){
    request({
      uri:  "http://XX.XX.XX.XXX:8080/rest/SetTouchedToday/" + ID,
      json: true
    }, function(err, res, data) {
      if (err) {
        console.log('Error:', err);
      } else if (res.statusCode !== 200) {
        console.log('Status:', res.statusCode);
      } else {
        console.log("Great success");
      }
    });
  }
所以问题是:
如何以更恰当的方式“垃圾邮件”请求,以避免ENOBUFS? 或者我对
的每个限制有什么错


提前谢谢

你根本没打电话回电话。我没有什么需要做的。我用一个只包含console.log(“nothing”)的回调进行了测试,但仍然不起作用,但回调是为1次迭代打印的……您肯定会对您的服务器进行DDoS攻击!“我没有任何需要在那里做的事情”。是的,您可以这样做:在每次迭代之后,您必须调用
callback
。正如我所说的,即使为了调用回调,这也不起作用。我再试一次,我:)你根本没打电话回电话。我没有什么需要做的。我用一个只包含console.log(“nothing”)的回调进行了测试,但仍然不起作用,但回调是为1次迭代打印的……您肯定会对您的服务器进行DDoS攻击!“我没有任何需要在那里做的事情”。是的,您可以这样做:在每次迭代之后,您必须调用
callback
。正如我所说的,即使为了调用回调,这也不起作用。我会再试一次,我会:)