0
我的目標是每個時間間隔發送N個請求,並確保網絡滯後不會影響我的算法。 我做了這樣的功能:node.js:具有時間間隔的貨幣限制並行執行(速率限制)
var results=[];
function sendBatchReq(docs, fromIndex, batchSize, timeout){
var counter=batchSize;
console.log(new Date()+ " executing");
for (var i = fromIndex; i < fromIndex+batchSize; i++) {
var url=docs[i].url;
request(url, function(err, res, data) {
results.push(JSON.parse(data));
counter--;
if(counter==0 && docs.length >=fromIndex+(batchSize*2)){
console.log(new Date()+" next batch");
setTimeout(sendBatchReq(docs,fromIndex+batchSize,batchSize), timeout);
}
});
}
}
sendBatchReq(docs, 0, 5, 10000);
這應該像這樣工作: 執行第5的要求,當第5 CB是被處決推出另一批10秒後5請求。
問題是超時似乎不起作用:所有新的sendBathReq都在console.log打印出來後執行。