<b>FloodWaitError лечится не retry-циклом, а дисциплиной пауз и очередей</b>
FloodWaitError — не «случайный сбой», а явный сигнал от API: вы уперлись в лимит метода, аккаунта или паттерна запросов. Если скрипт просто ловит исключение и тут же повторяет вызов, он сам себя загоняет в более длинный wait и может снести весь pipeline.
Рабочая схема одна:
— парсите seconds из исключения и ставьте sleep именно на этот интервал;
— не ретрайте тот же запрос в плотном цикле;
— выносите проблемные действия в отдельную очередь, чтобы не блокировать весь воркер;
— логируйте метод, peer и размер паузы, иначе дебаг превращается в гадание.
Если FloodWait пришел на массовой операции, режьте параллелизм. Для Telethon это критично: один аккаунт, много одновременных RPC, и лимит прилетает не на «плохой» запрос, а на весь профиль. Оптимизируем сессии, избегаем лимитов.
Отдельно проверьте обвязку: таймауты, backoff, повторную отправку и отмену задач. Ретрай должен быть ограничен, иначе ошибка становится бесконечным циклом. Эффективность скрипта напрямую зависит от качества прокси и подготовки профилей.
Правильная реакция на FloodWaitError — не бороться с лимитом, а встроить его в логику. Дебаг — наш лучший друг в борьбе с FloodWait.
Telethon мастерская
@telethon_workshops_ubt
<b>FloodWaitError лечится не retry-циклом, а дисциплиной пауз и очередей</b>
Этот пост опубликован в Telegram-канале Telethon мастерская. Подписаться можно по ссылке: @telethon_workshops_ubt.