Wählen Sie die richtige asynchrone Methode für die Stapelverarbeitung für maximale Anforderungen / Sek.
Ich muss einen zyklischen Aufruf an eine externe API mit einer gewissen Verzögerung durchführen, um zu verhindern, dass die Einschränkung "Benutzer-Ratenlimit überschritten" auftritt.
ie Geokodierungs-API von @Google Maps reagiert empfindlich auf Anforderungen / Sek., Sodass 10 Anforderungen / Sek. Zulässig sind. Ich sollte Hunderte meiner Kontakte geocodieren, und eine solche Verzögerung ist erforderlich. Ich benötige also 10 asynchrone Geocodierungsfunktionen mit einer Verzögerung von jeweils 1 Sekunde. Also sammle ich alle Kontakte im Array und durchlaufe das Array asynchron.
Im Allgemeinen muss ich N gleichzeitige Threads mit einer Verzögerung von D ms am Ende jedes Threads haben. Die gesamte Schleife durchläuft ein Array von Benutzerentitäten. Jeder Thread verarbeitet wie gewohnt eine einzelne Entität.
Ich nehme an, einen Code zu haben wie:
const N = 10; # threads count
const D = 1000; # delay after each execution
var processUser = function(user, callback){
someBusinessLogicProc(user, function(err) {
setTimeout(function() {
return callback(err);
}, D);
});
}
var async = require('async') ;
var people = new Array(900);
async.batchMethod(people, processUser, N, finalCallback);
In diesem PseudocodebatchMethod
ist eine Methode, nach der ich frage.