<b>FloodWaitError: как не убить скрипт на первом же лимите</b>
FloodWaitError — это не баг Telethon, а ответ сервера: запросы ушли слишком часто, и API просит подождать. Игнорировать исключение нельзя: следующий вызов прилетит в тот же лимит, а цепочка действий начнёт сыпаться.
Базовая схема обработки простая:
• ловим <code>errors.FloodWaitError</code> отдельно от остальных RPC-ошибок;
• читаем <code>e.seconds</code> и переводим паузу в <code>asyncio.sleep()</code>;
• не повторяем запрос в цикле без задержки — так вы только увеличите штраф;
• если задача массовая, ставим очередь и ограничиваем concurrency.
Если работа идёт через несколько аккаунтов, лимит считается отдельно для каждой сессии. Это не повод «разгонять» скрипт параллельными запросами: на практике упираетесь в прокси, качество профиля и собственную логику ретраев. Оптимизируем сессии, избегаем лимитов.
Полезный паттерн: для критичных операций делайте retry с backoff, а для неважных — просто пропускайте задачу после первого FloodWait. Дебаг — наш лучший друг в борьбе с FloodWait. Логируйте метод, чат, задержку и контекст вызова, иначе потом нечего разбирать.
Если FloodWait стал регулярным, проблема не в исключении, а в темпе скрипта: режьте частоту, вводите троттлинг и не смешивайте массовые действия с ручной логикой.
Telethon мастерская
@telethon_workshops_ubt
<b>FloodWaitError: как не убить скрипт на первом же лимите</b>
Этот пост опубликован в Telegram-канале Telethon мастерская. Подписаться можно по ссылке: @telethon_workshops_ubt.