Перейти к основному содержимому

Как исправить ошибки 429 и превышения лимитов запросов в Meshy API

Лимиты Meshy API: как исправить ошибки 429

Содержание

Если ваша интеграция получает ошибки 429, RateLimitExceeded или NoMoreConcurrentTasks при обращении к Meshy API, в этом руководстве объясняется, почему существуют эти лимиты и как спроектировать интеграцию так, чтобы работать в их рамках.

Зачем существуют лимиты запросов

API Meshy работает поверх общих GPU-вычислений, используемых для генерации 3D-моделей, текстур и связанных ресурсов. Лимиты запросов и ограничения параллелизма защищают эту общую инфраструктуру, чтобы качество генерации и время выполнения оставались стабильными для каждого пользователя платформы. У каждой учётной записи, в зависимости от текущего тарифного плана, есть максимальное количество запросов за определённый период времени и максимальное количество задач генерации, которые могут одновременно находиться в работе (в очереди или в процессе выполнения).

Лимит запросов vs. лимит очереди/параллелизма

Существует два разных лимита, и они срабатывают по-разному:

  • Лимит частоты запросов (429 / RateLimitExceeded): ограничивает, сколько вызовов API (например, создание задач, опрос статуса) вы можете делать в минуту. Его превышение означает, что вы обращаетесь к API слишком часто, независимо от количества фактически выполняющихся задач.

  • Лимит параллелизма / очереди (NoMoreConcurrentTasks): ограничивает, сколько задач генерации может одновременно находиться в очереди или в обработке. Его превышение означает, что у вас уже достигнуто максимальное количество активных задач, и нужно дождаться завершения одной из них, прежде чем отправлять новую.

Проверить текущие лимиты запросов и параллелизма для вашего плана можно в панели управления Meshy, так как они могут различаться в зависимости от тарифа.

Стратегия экспоненциальной задержки при ошибках 429

Когда вы получаете ответ 429 или RateLimitExceeded, не повторяйте тот же запрос немедленно. Вместо этого:

  • Используйте экспоненциальную задержку (exponential backoff): подождите короткий интервал, затем удваивайте его при каждой последующей неудаче, до разумного максимума.

  • Добавляйте jitter (небольшое случайное смещение) к интервалу задержки, чтобы несколько воркеров в вашей системе не повторяли запросы в один и тот же момент.

  • Учитывайте заголовки Retry-After или заголовки лимитов, возвращаемые в ответе, если они есть, вместо того чтобы угадывать время ожидания.

  • Ограничьте количество повторных попыток на запрос, чтобы постоянная ошибка не приводила к бесконечному циклу.

Планирование с учётом лимитов параллелизма

Ошибка NoMoreConcurrentTasks означает, что вы уже достигли потолка активных задач своей учётной записи. Чтобы не столкнуться с этим в продакшене:

  • Поддерживайте локальную очередь или планировщик задач в вашем приложении, который отправляет новую задачу генерации только после завершения предыдущей или когда количество активных задач опускается ниже лимита.

  • Опрашивайте статус задач (или используйте вебхуки, если они поддерживаются в вашем рабочем процессе), чтобы узнавать, когда освободится слот, вместо отправки наугад.

  • Группируйте и ограничивайте частоту массовых задач генерации вместо отправки всех запросов сразу — это сглаживает как частоту запросов, так и количество одновременных задач.

  • Настройте мониторинг/оповещения на вашей стороне, чтобы всплеск ошибок 429/NoMoreConcurrentTasks был заметен до того, как он повлияет на ваших пользователей.

Повторная попытка неудачной или неудовлетворительной генерации

Meshy API в настоящее время не поддерживает встроенный «повтор» существующей генерации для планов Individual и Studio — если результат не соответствует вашим ожиданиям, вы отправляете новый запрос на генерацию, который расходует кредиты как обычно. Когда ваш автоматизированный конвейер обрабатывает временные ошибки (например, 429), убедитесь, что логика повторных попыток лишь повторно отправляет исходный запрос после задержки, а не создаёт дублирующиеся задачи генерации каждый раз.

Когда стоит рассмотреть обновление плана

Если вы реализовали экспоненциальную задержку и очередь с учётом параллелизма, но всё ещё стабильно упираетесь в лимиты запросов или параллелизма, это обычно признак того, что потребности вашей интеграции в пропускной способности превысили лимиты текущего плана. Проверьте в панели управления allowances вашего текущего плана по запросам и параллелизму и рассмотрите возможность обновления плана либо обратитесь в отдел продаж Meshy по поводу корпоративного доступа к API, если вам нужна устойчиво более высокая пропускная способность.

FAQ

1. Что означает ошибка 429 или RateLimitExceeded?

Она означает, что вы превысили количество запросов к API, разрешённое вашему плану за определённый период времени. Снизьте частоту запросов и используйте экспоненциальную задержку перед повторной попыткой.

2. Что означает NoMoreConcurrentTasks?

Она означает, что у вашей учётной записи уже достигнуто максимальное количество задач генерации в очереди или в процессе выполнения. Дождитесь завершения существующей задачи или уменьшите количество одновременно отправляемых задач, прежде чем отправлять новые.

3. Как узнать лимиты запросов и параллелизма моей учётной записи?

Проверьте панель управления Meshy, чтобы узнать лимиты, связанные с вашим текущим планом, так как они могут различаться между тарифами.

4. Поддерживает ли Meshy автоматические повторные попытки для задач генерации?

Нет, не для планов Individual и Studio — неудачную или неудовлетворительную генерацию нужно отправить заново как новый запрос, который расходует кредиты как обычно. Корпоративным клиентам следует обратиться в отдел продаж по поводу функции повторных попыток.

5. Как лучше всего избежать этих ошибок в продакшн-конвейере?

Реализуйте локальную очередь, ограничивающую отправку, чтобы оставаться в пределах лимита параллелизма, добавьте экспоненциальную задержку с jitter для любых ответов 429 и отслеживайте частоту ошибок, чтобы реагировать до того, как они повлияют на ваших пользователей.

6. Когда следует обновить план из-за лимитов запросов?

Если вы уже реализовали экспоненциальную задержку и очередь с учётом параллелизма, но всё ещё регулярно упираетесь в эти лимиты, ваше использование, вероятно, превысило возможности текущего плана — проверьте панель управления или обратитесь в отдел продаж по поводу плана с более высокой пропускной способностью.


Похожие статьи

Это ответило на ваш вопрос?