Telethon мастерская
Telethon мастерская
@telethon_workshops_ubt

FloodWaitError — не ошибка, а сигнал: как не убить сессию на лимитах

FloodWaitError — не ошибка, а сигнал: как не убить сессию на лимитах

FloodWaitError в Telethon возникает, когда API просит остановиться и подождать. Игнорировать его нельзя: повторный запрос сразу же только увеличит таймаут и риск дополнительных ограничений.

Базовая схема реакции:
— поймали исключение;
— читаем wait_seconds из объекта ошибки;
— ставим asyncio.sleep() на указанный срок;
— повторяем запрос только после паузы.
Если у вас массовая обработка, лимит нужно централизовать, а не размазывать по каждому корутину отдельно. Иначе одна горячая ветка начнёт штамповать RPC-запросы и быстро упрётся в flood.

Для долгих задач полезно разделять ошибки по типам: краткий FloodWait можно переждать, а систематические лимиты — это уже проблема частоты, очереди или качества профиля. Логи должны хранить метод, peer и длительность ожидания. Без этого дебаг превращается в гадание.

Не ставьте фиксированный retry без анализа. Сначала пауза по значению ошибки, потом ограничение параллелизма, потом пересмотр логики вызовов. Дебаг — наш лучший друг в борьбе с FloodWait.
Этот пост опубликован в Telegram-канале Telethon мастерская. Подписаться можно по ссылке: @telethon_workshops_ubt.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.