Итак, в настоящее время я бомбардирую API с несколькими запросами с задержкой 10 секунд каждый между последующими запросами, поэтому вот подход, который я применяю для решения задержек и вызовов API.
try {
const url = `***********`;
const response = await axios.get(url);
if (response.data) {
for (let user of response.data) {
if (user.activated === 0) {
notActivatedUsers.push(user);
await sendConfirmationEmail(user.email);
await new Promise(r => setTimeout(r, 10000));
}
}
}
} catch (error) {
if (error) {
throw new Error(error);
}
}
Подход отлично работает, как я respecting api call limit
.
Мой вопрос больше о scalability & performance
, как я слышал о библиотеках, таких как bluebird
, lodash
, предоставляющих методы, такие как throttle
, debounce
для решения подобных проблем. Итак, мне просто любопытно узнать другие способы решения подобных проблем, ничего больше, и у меня также есть интуиция, что выполнение API-вызовов для l oop не является хорошей практикой. Я надеюсь, вы понимаете меня сейчас.
Я не знаю, насколько это масштабируемо, если я буду запускать l oop до 20k, будет ли он работать нормально? Поскольку у меня нет огромного набора данных для тестирования.