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

<b>FloodWaitError: как не убить скрипт на первом же лимите</b>

<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 стал регулярным, проблема не в исключении, а в темпе скрипта: режьте частоту, вводите троттлинг и не смешивайте массовые действия с ручной логикой.
Этот пост опубликован в Telegram-канале Telethon мастерская. Подписаться можно по ссылке: @telethon_workshops_ubt.
growth

Свежие посты в категории «Growth & Funnel»

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

start

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

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

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