Repository navigation
limits
Эта страница нужна, когда команда ждёт, останавливается с ошибкой о слишком частых запросах или когда
вы собираетесь скачать много истории или запустить несколько команд сразу. Она объясняет, как часто
max обращается к MAX, почему иногда ждёт и что делать, когда он остановился. Прочитав её, вы будете
знать, какое ожидание нормально, как поменять темп и когда пробовать снова.
Слова, которые встречаются на странице:
-
Темп — сколько запросов в минуту профиль может отправить в MAX.
maxдержит каждый профиль в этих пределах. - Отказ MAX — ответ «слишком много запросов». MAX свои пределы не публикует, а частые входы подряд блокирует на время.
- Фоновое задание — скачивание, которое продолжается после того, как запустившая его команда завершилась.
max останавливается на отказе MAX и не повторяет запрос сам.
Каждый запрос, который max делает от имени профиля, — из команды, max personal mcp, max personal serve или
фонового задания — ждёт своей очереди в одном темпе этого профиля:
- первые 10 запросов идут сразу, поэтому обычные команды не ждут;
- дальше — 20 запросов в минуту, один примерно раз в 3 секунды, пока запас не восстановится.
Две команды одновременно делят один темп. Очередь хранится в файле в папке состояния
(pace/<профиль>.json), поэтому два терминала, несколько messages sync --background и max personal serve
встают друг за другом, а не идут каждый на полной скорости. Пять скачиваний параллельно идут не
быстрее, чем по очереди, — и не рискованнее. У разных профилей (разных аккаунтов MAX) темп свой.
Команда, которой ждать своей очереди дольше 5 секунд, пишет об этом в stderr:
waiting 12 s to keep this profile's pace with MAX
Поменять темп можно в файле настроек или для одного окружения переменной:
{ "defaults": { "requestsPerMinute": 10 } }MAX_REQUESTS_PER_MINUTE=10 max personal messages sync Друзья0 выключает темп. Делайте это только для профиля, которым не жалко рискнуть.
-
«Слишком много запросов». Команда останавливается с кодом
8(rate_limited). Из ответа MAXmaxне знает, сколько ждать, поэтому сам не ждёт и не повторяет запрос.messages syncсохраняет уже скачанное, и следующий запуск продолжает с того же места. Подождите несколько минут. -
Слишком частые входы. MAX отказывает во входе, и
maxсам не входит до конца паузы — ни одна команда, ниmax personal session start, ни фоновый сервер. Пауза растёт с каждым отказом подряд: 1 минута, 5 минут, 30 минут, час, 6 часов, дальше сутки; удачный вход её сбрасывает. Подробно — в решении проблем. -
Если MAX всё же назовёт время ожидания, это ожидание держит весь профиль: следующий запрос
любого процесса ждёт его конца, а тот, кому ждать больше 5 минут, сразу получает код
8, ничего не отправив.max personal doctorпоказывает удерживаемое в разделеflood;max personal flood clearснимает раньше срока, если вы знаете, что ограничение снято.
-
30 отправок в час на профиль по умолчанию (
sendsPerHour), во всех процессах вместе; сверх — отказ с кодом8. См. защиту от отправки не туда. - Отправку, которая могла дойти, а могла и нет,
maxне повторяет сам: повтор с тем же--send-idMAX узнаёт и второго сообщения не создаёт.
-
messages syncлистает по 30 сообщений, с паузой 5–10 секунд между страницами (--pause), не больше 1200 сообщений за запуск (--limit). Подробно — в руководстве по архиву. -
messages download --allделает запрос на каждую страницу и каждый файл; файлы тоже идут в темпе. - Списки участников и ремонт пропусков в архиве идут в том же темпе.
messages sync --background и store gaps repair --background запускают задание, которое переживает
команду: по одному заданию на чат, каждое в своём процессе, все — в одном темпе профиля.
max personal store jobs list показывает их, max personal store jobs cancel <id> останавливает после текущей страницы.
У бота свои ограничения Bot API, отдельные от аккаунта. На ответ 429 с retry-after чтение повторяется
один раз после паузы, которую просит MAX; отправка не повторяется. См. боты.
max personal serve держит одно соединение с MAX, и команды, max personal mcp и max personal watch идут через него, а не
входят каждый сам. Поэтому параллельные команды не добавляют входов. Если сервер не работает, команда
запускает его в фоне (настройка serve). После разрыва сервер подключается снова с растущей паузой —
от секунды до минуты.