如何使用特定时间跨度的速率限制进行异步API调用?

时间:2016-07-14 05:56:56

标签: javascript node.js api server hapijs

我正在开展项目,我必须从我的NodeJS服务器到第三方服务器一次拨打近500多个电话。问题是第三方服务器在一秒钟内有最多50个呼叫的限制。能否请你帮我实现一秒钟内只拨打指定号码的逻辑。我的项目中使用的技术/语言是带有HapiJS框架的NodeJS。

提前谢谢。

1 个答案:

答案 0 :(得分:3)

您可以使用具有所需延迟和同时连接的async.js eachlLimit。这就像是:

async.eachLimit(['ur11','ur12','ur13' /*and so on*/], 50/* how many simultaneous requests*/,  function (url, callback) {
    request(url, /*params*/ function(err, result){
        //handle err and result
        setTimeout(callback, 100 /*you desired delay*/)  

    })    
}, function (err) {
    // all requests done
});