2016-07-14 20 views
1

我正在從事我從一個NodeJS服務器到第三方服務器的近500次呼叫的項目。問題在於第三方服務器一秒鐘內最多有50個呼叫的限制。您能否幫我實施一秒鐘內只撥打指定電話號碼的邏輯?我的項目中使用的技術/語言是帶有HapiJS框架的NodeJS。如何在特定的時間範圍內製作帶有速率限制的異步API調用?

預先感謝您。

+0

所以500電話,但50應該通過,其他450應該發生什麼? –

+0

如果有500個電話,那麼它應該在一秒鐘內發送50個電話。接下來的9秒會發生同樣的情況。我的意思是它應該是批次調用。 –

回答

2

您可以使用具有所需延遲和同時連接的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 
}); 
+0

非常感謝你爲這個偉大的解決方案。我正在尋找相同的解決方案。 –