Выберите правильный асинхронный метод для пакетной обработки для максимальных запросов / сек.

Мне нужно выполнить циклический вызов некоторого внешнего API с некоторой задержкой, чтобы предотвратить ограничение «User Rate Limit Exceeded».

API геокодирования Google Maps чувствителен к 'req / sec', позволяя 10 req / sec. Я должен сделать геокодирование для сотен моих контактов, и такая задержка необходима. Итак, мне нужно иметь 10 функций асинхронного геокодирования с пост-задержкой в ​​1 секунду для каждой. Итак, я собираю все контакты в массиве, а затем я перебираю массив в асинхронном режиме.

Как правило, мне нужно иметь N одновременных потоков с задержкой в ​​D msecs в конце каждого потока. Весь цикл перебирает массив пользовательских сущностей. Каждый поток обрабатывает отдельную сущность, как обычно.

Я полагаю, иметь такой код:

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

В этом псевдокодеbatchMethod это метод, который я прошу.

Ответы на вопрос(1)

Ваш ответ на вопрос