FloodWaitError нельзя “лечить” retry-лупом — его нужно уважать и планировать
FloodWaitError — это не баг Telethon, а ответ лимитера на частоту RPC. Если скрипт поймал такой exception, первый шаг — не паниковать и не спамить повтором запроса: так вы только увеличите паузу и добьёте сессию.
Рабочая схема простая:
— парсить wait_seconds и ставить точный sleep на этот интервал;
— оборачивать запросы в отдельный обработчик, а не ловить всё подряд;
— вести счётчик FloodWait по типам действий: отправка, инвайт, чтение, парсинг;
— при повторяемых паузах снижать concurrency, а не «ускорять» код. Оптимизируем сессии, избегаем лимитов.
Если у вас очередь задач, не блокируйте весь воркер на одном ожидании. Переносите проблемный job в delayed-очередь, сохраняйте состояние и продолжайте обработку остальных аккаунтов или чатов. Дебаг — наш лучший друг в борьбе с FloodWait: логируйте метод, peer, wait_seconds и контекст вызова.
Отдельно проверьте прокси, ротацию сессий и паттерн запросов: иногда FloodWait — следствие слишком плотного цикла, а не конкретного аккаунта. Эффективность скрипта напрямую зависит от качества прокси и подготовки профилей.
Telethon мастерская
@telethon_workshops_ubt
FloodWaitError нельзя “лечить” retry-лупом — его нужно уважать и планировать
Этот пост опубликован в Telegram-канале Telethon мастерская. Подписаться можно по ссылке: @telethon_workshops_ubt.