Я создаю приложение в nodeJS, express и mysql, где я собираю данные из нескольких разных API: s, используя выборку узлов, один из которых имеет ограничение в 200 вызовов в 5 минут. Чтобы полностью обновить мою базу данных, мне нужно по существу выполнять вызовы этого API без остановок, в настоящее время я пытаюсь не выходить за пределы лимита, используя спящий режим в цикле for / foreach.
Проблема в том, что каждый запрос может меняться по времени, и мне кажется, что я мог бы сделать звонки более эффективными, чем постоянно спать одинаковое количество времени для каждого запроса. Мне было интересно, есть ли способ лучше? Я думал о том, чтобы сделать, например, 199 вызовов asyn c, а затем ждать ровно 5 минут, а затем повторить это ... но я понятия не имею, как.
Не удалось найти тему по этому поводу, но, пожалуйста, сделайте ссылку на один, если уже есть хороший ответ. Мы будем благодарны за ответы, и если у вас есть другие отзывы, дайте мне знать!
for (let i = 1; i < length; i++) {
try {
let id = IdCollection[i];
let resultFromApiCall = await datafetcher.MakeApiCall(id);
await sleep(2000);
} catch (error) {
console.log("Error in api-calls" + error);
}
}```