Elija el método asíncrono adecuado para el procesamiento por lotes para solicitudes máximas / seg.

Necesito realizar una llamada cíclica a alguna API externa con algún retraso, para evitar la restricción 'Límite de velocidad de usuario excedido'.

La API de geocodificación de Google Maps es sensible a 'req / sec', lo que permite 10 req / sec. Debo hacer geocodificación para cientos de mis contactos, y se requiere dicho retraso. Entonces, necesito tener 10 funciones de geocodificación asíncrona con post-delay en 1 segundo para cada una. Entonces, recopilo todos los contactos en la matriz, y luego recorro la matriz de manera asíncrona.

En general, necesito tener N subprocesos simultáneos, con un retraso en D ms en el final de cada subproceso. Todo el ciclo itera sobre una matriz de entidades de usuario. Cada hilo procesa una sola entidad, como de costumbre.

Supongo que tiene un código como:

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);

En este pseudocódigobatchMethod Es un método que estoy pidiendo.

Respuestas a la pregunta(1)

Su respuesta a la pregunta