@Maxwell012

Как сделать паузу в 1с между асинхронными запросами?

Я использую апи одного сайта, в бесплатной версии у меня ограничение 1 запрос в секунду.
Функция которая выполняет асинхронный запрос к данному апи внедрина в работу бота написанного на aiogram.
Суть вопроса, как поставить ограничение или как предерживаться ограничения в 1 запрос в секунду учитывая что aiogram в данном случаи можно приравнять к asyncio.gather(), то есть просто и банально поставить паузу await asyncio.sleep(1) не сработает, та и больше скажу в обычном тесте в поочередном вызове функции с паузой asyncio.sleep(1) почему то код работал на 6-7 запросе быстрее чем раз в 1с (без понятия как, но я ловил ошибку 429). Также я пробовал установить и таймаут с помощью aiohttp.ClientTimeout(total=1), но это также безуспешно так как в итоге никакой паузы в 1 секунду я не увидел.
  • Вопрос задан
  • 179 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Everything_is_bad
ну так не делай тупо gather, а делай один обычный цикл (или очередь), внутри которого запрос к сайту и asyncio.sleep(1) после него

почему то код работал на 6-7 запросе быстрее чем раз в 1с (без понятия как, но я ловил ошибку 429).
нам конечно уже угадывать, чё ты там понаписал?

aiohttp.ClientTimeout(total=1)
это вообще другое, это про ожидание ответа от сервера, почитай доку
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы