打开事件源,同时使用Nodejs保持在速率限制之下

时间:2015-12-29 21:04:33

标签: node.js asynchronous ratelimit

我的api每秒最多只允许10个请求。我试图使用异步库保持在此速率限制之下。我尝试了多种功能,但没有一种功能正常。

Pauseconnect和connectStream为每个项目打开一个事件流。如果您需要查看他们的代码,请告诉我。

async.queue - 不要等待。

async.eachLimit(TeamList, 5, pauseConnect, function(err){
                if(err) {console.log(err);}
    });

async.eachLimit - 停在5并且没有进展

limiter.removeTokens(1, function() {
      for(var i=0; i< TeamList.length; i++){
            connectStream(TeamList[i]);
      }
    });

速率限制器 - 无需等待即可遍历所有这些

async.each(TeamList pauseConnect, function(err){
                if(err) {console.log(err);}
    });

async.each--不等待只运行所有这些

.left_service_wrap {
   float:left;
   width:50%;
}
.right_service_wrap {
    float: left;
    width:50%;
}

2 个答案:

答案 0 :(得分:0)

你错过了async.each中的回调,它应该是(例如)......

async.each(TeamList pauseConnect, function(err, callback) {
  if(err) {
    console.log(err);
  }
  return callback();
});

答案 1 :(得分:0)

如果有人好奇这对我有用

async.eachLimit(TeamList, 5, function(team, callback){
        setTimeout(function(){
        connectStream(team);
        callback();
       }, (5000));
        }, function(err){
                if(err) {console.log(err);}

    });