FloodWaitError — не баг, а сигнал: как не убить скрипт лимитами
FloodWaitError возникает, когда Telegram режет частоту действий: отправку сообщений, инвайты, запросы к методам API. Игнорировать его нельзя — повторный вызов метода без паузы только продлит блокировку.
Базовая схема реакции:
• извлечь seconds из исключения;
• не ретраить сразу;
• уснуть на указанный интервал + небольшой запас;
• сохранить состояние задачи, чтобы продолжить с места остановки.
Если у вас несколько воркеров, нужен общий лимитер, а не локальный sleep в каждом процессе. Иначе один поток уже получил FloodWait, а второй продолжает давить тот же лимит. Для массовых операций важны очередь, backoff и контроль объема на аккаунт. Оптимизируем сессии, избегаем лимитов.
Разбираем логи ошибок: что пошло не так на стороне API? Часто проблема не в «плохом Telethon», а в слишком агрессивной логике: параллельные запросы, одинаковые тайминги, отсутствие пауз между типами действий.
Не лечите FloodWait бесконечными retry. Нормальная стратегия — поймать исключение, дождаться паузы, снизить темп и продолжить с тем же контекстом; если лимит системный, пересоберите расписание запросов и распределение нагрузки.
Telethon мастерская
@telethon_workshops_ubt
FloodWaitError — не баг, а сигнал: как не убить скрипт лимитами
Этот пост опубликован в Telegram-канале Telethon мастерская. Подписаться можно по ссылке: @telethon_workshops_ubt.