メインコンテンツへスキップ

Meshy APIの429エラーおよびレート制限エラーを解消する方法

Meshy APIのレート制限:429エラーの解消方法

目次

Meshy APIの呼び出し時に 429RateLimitExceededNoMoreConcurrentTasks エラーが発生している場合、このガイドではこれらの制限が存在する理由と、制限の範囲内で動作するように統合を設計する方法を説明します。

レート制限が存在する理由

MeshyのAPIは、3Dモデル、テクスチャ、および関連アセットの生成に使用される共有GPUコンピューティングの前面にあります。レート制限と同時実行数の上限は、この共有インフラストラクチャを保護し、プラットフォーム上のすべてのユーザーにとって生成品質と処理時間を一定に保つためのものです。各アカウントには、現在のプランに応じて、一定の時間枠内で実行できるリクエストの最大数と、同時に実行できる(キュー内または進行中の)生成タスクの最大数が設定されています。

リクエスト制限とキュー/同時実行制限の違い

2つの異なる制限があり、それぞれ異なる形で失敗します:

  • リクエストレート制限(429 / RateLimitExceeded):タスク作成やステータスポーリングなどのAPI呼び出しを1分間に実行できる回数を制限します。これを超えた場合は、実際に実行中のタスク数に関係なく、APIの呼び出し頻度が高すぎることを意味します。

  • 同時実行/キュー制限(NoMoreConcurrentTasks):同時にキューに入れる、または処理できる生成タスクの数を制限します。これを超えた場合は、アクティブなタスク数がすでに上限に達しているため、新しいタスクを送信する前に既存のタスクの完了を待つ必要があります。

プランの階層によって異なる場合があるため、Meshyダッシュボードで現在のプランのリクエスト制限と同時実行制限を確認してください。

429エラーのバックオフ戦略

429またはRateLimitExceededのレスポンスを受け取った場合は、同じリクエストをすぐに再試行しないでください。代わりに:

  • 指数バックオフを使用する:短い間隔で待機し、その後の失敗ごとに待機時間を2倍にしていき、適切な上限まで増やします。

  • バックオフ間隔にジッター(小さなランダムなオフセット)を加え、システム内の複数のワーカーが同時に再試行しないようにします。

  • 待機時間を推測するのではなく、レスポンスにRetry-Afterやレート制限に関するヘッダーが含まれている場合は、それに従います。

  • リクエストごとの再試行回数に上限を設け、持続的な失敗が無限にループしないようにします。

同時実行制限に合わせた計画

NoMoreConcurrentTasksエラーは、アカウントのアクティブタスク上限にすでに達していることを意味します。本番環境でこのエラーを回避するには:

  • 自分のアプリケーション内にローカルキューまたはジョブスケジューラを用意し、前のタスクが完了するか、アクティブなタスク数が制限を下回ったときにのみ新しい生成タスクを送信するようにします。

  • タスクのステータスをポーリングする(またはワークフローでサポートされている場合はWebhookを使用する)ことで、空きスロットができたタイミングを把握し、投機的に送信することを避けます。

  • 大量の生成ジョブを一括で全リクエストを一度に送信するのではなく、バッチ化してスロットリングします。これにより、リクエストレートと同時タスク数の両方が平滑化されます。

  • 自分の側でモニタリング/アラートを構築し、429/NoMoreConcurrentTasksエラーの急増がユーザーに影響を与える前に検知できるようにします。

失敗した、または不満足な生成の再試行

Meshy APIは現在、個人プランおよびスタジオプランでは、既存の生成を組み込みの「再試行」機能としてサポートしていません。結果が期待に満たない場合は、新しい生成リクエストを送信することになり、通常どおりクレジットを消費します。自動パイプラインで一時的なエラー(429など)を処理する場合は、再試行ロジックがバックオフ後に元のリクエストのみを再送信するようにし、毎回重複した生成タスクを作成しないようにしてください。

プランのアップグレードを検討すべきタイミング

バックオフと同時実行を考慮したキューイングを実装しても、一貫してレート制限や同時実行制限に達している場合は、通常、統合のスループット要件が現在のプランの制限を超えていることを示しています。ダッシュボードで現在のプランのリクエストおよび同時実行の許容量を確認し、継続的に高いスループットが必要な場合は、アップグレードを検討するか、エンタープライズレベルのAPIアクセスについてMeshyの営業チームにお問い合わせください。

FAQ

1. 429またはRateLimitExceededエラーは何を意味しますか?

プランで許可されている一定時間枠内のAPIリクエスト数を超えたことを意味します。リクエストレートを下げ、指数バックオフを使用してから再試行してください。

2. NoMoreConcurrentTasksは何を意味しますか?

アカウントでキューに入っている、または進行中の生成タスク数がすでに上限に達していることを意味します。新しいタスクを送信する前に、既存のタスクの完了を待つか、一度に送信するタスクの数を減らしてください。

3. 自分のアカウントのレート制限と同時実行制限を確認するにはどうすればよいですか?

Meshyダッシュボードで、現在のプランに関連付けられている制限を確認してください。プランの階層によって異なる場合があります。

4. Meshyは生成タスクの自動再試行をサポートしていますか?

いいえ、個人プランおよびスタジオプランではサポートされていません。失敗した、または不満足な生成は、新しいリクエストとして再送信する必要があり、通常どおりクレジットを消費します。エンタープライズのお客様は、再試行機能について営業までお問い合わせください。

5. 本番パイプラインでこれらのエラーを回避する最良の方法は何ですか?

同時実行制限を超えないように送信をスロットリングするローカルキューを実装し、429レスポンスにはジッター付きの指数バックオフを追加し、ユーザーに影響が及ぶ前に対応できるようエラー発生率をモニタリングしてください。

6. レート制限を理由にプランをアップグレードすべきタイミングはいつですか?

すでにバックオフと同時実行を考慮したキューイングを実装しても、依然として頻繁にこれらの制限に達している場合は、使用量が現在のプランの上限を超えている可能性があります。ダッシュボードを確認するか、より高いスループットのプランについて営業にお問い合わせください。


関連記事

この記事は役に立ちましたか?