Wiki
猫Rate Limiting RU
English version: Rate-Limiting
Это краткая русскоязычная версия страницы про ограничение частоты. Полная и наиболее актуальная страница: Rate-Limiting.
Где действует limiter
Ограничение частоты в Laniakea относится к слою Telegram API client.
Он влияет на исходящие запросы бота и помогает:
- не превысить Telegram limits;
- переживать всплески;
- корректно обрабатывать
retry_after.
Основные режимы
Есть два общих режима поведения:
- режим ожидания;
- режим сброса.
В режиме ожидания запросы ждут своей очереди.
В режиме сброса лишние запросы можно отклонять сразу, чтобы сохранить отзывчивость под нагрузкой.
Ключевые настройки
Через BotOpts особенно важны:
RateLimitDropRLOverflow
Это задает общую политику для API client, который бот строит внутри NewBot(...).
retry_after
Если Telegram отвечает 429 retry_after, библиотека:
- обновляет состояние limiter;
- ждет нужное время;
- повторяет запрос, если context не был отменен.
Это значит, что delayed delivery иногда нормальна и не обязательно означает поломку логики.
Global и per-chat поведение
На практике limiter связан не только с глобальным потоком запросов, но и с поведением, зависящим от чата, в API layer.
Из-за этого важно думать не только о “сколько запросов в секунду вообще”, но и о поведении всплесков внутри одного потока чата.
Когда дропать, а когда ждать
Обычно режим ожидания лучше, когда:
- важнее надежная доставка;
- бот обрабатывает пользовательские команды, которые нельзя терять.
Режим сброса может быть полезен, когда:
- бот работает под очень высоким наплывом;
- часть исходящих запросов допустимо потерять;
- важнее быстрый ответ системы под перегрузкой.
Практические советы
- Начинай с дефолтного ограничения частоты.
- Повышай
MaxWorkersи ограничение частоты только после реальных наблюдений. - Ожидай, что
retry_afterиногда будет нормальной частью жизни бота.
Что читать дальше
Navigation
Start here
Runtime and Architecture
- Bot-Lifecycle
- Webhook-Runtime
- Middleware
- Runners
- Error-Handling
- Logging
- Update-Routing-Model
- Policies
- Scenes
Interaction and Telegram API
- Inline-Keyboards-and-Payloads
- Auto-Generated-Commands
- Drafts
- Rich-Messages
- Localization
- Rate-Limiting
- tgapi-Overview