GET workitem/:id endpoint の Rate Limit 変更について

Two professionals discussing a project while holding a tablet in a modern office hallway with digital design elements overlaid.

多くの Web サービスと同様、Design Automation の各 endpoint には、サービスを保護して可用性を高めるために Rate Limit(呼び出し数制限)が設定されています。

すべての Forge 利用者に最適なサービスを提供するため、現在の の呼び出し数制限を、現在の 10,000 回(リクエスト/分)から、次の日程で 2 段階調整していく予定です。 

ForgeとWebサーバー間でのGET workitems/:idの通信を示すイラスト
  • 2022 年 5 月 23 日 ~: 1,000 回(リクエスト/分)

  • 2022 年 8 月 22 日~: 150 回(リクエスト/分)

現在、同 endpoint の呼び出し数が 150 回(リクエスト/分)を超えるアプリをお持ちの方に、通知メールを配信しています。通知を受け取られた場合には、アプリが 429 エラーコードを適切に処理していることをご確認ださい。詳細については、アプリ耐障害性向上の考察 のブログ記事を参照いただけます。

アプリの調整方法は ? 

Activity の定義後、POST workitems endpoint で自動化タスクを実行し、GET workitems/:id endpoint を使って進捗を確認することが出来ます。この方法は引き続き機能しますが、推奨はされません。Workitem 完了までにかかる時間によっては、アプリが数千回も GET workitems/:id endpoint を呼び出してしまう可能性があるためです。現在提案可能な解決策は、次の 3 つの方法です。 

1. 429 エラーの対応処理

現在のアプリは、一定時間毎に GET workitems/:id endpoint を呼び出しているので、429 のエラーチェックを追加して、レスポンス ヘッダーから再試行までの時間(秒)を示す retry-after 値をチェックしてください。この制限は、すべての Workitem に適用されることに注意してください。

2. onComplete コールバックの実装 – サーバー アプリに推奨 

最高のパフォーマンスを得るには、onComplete コールバック URL を持つ Workitem を利用するのが最適な方法です。Workitem の実行が完了すると、Design Automation API は、Workitem Id やレポートなど、必要なすべての情報を onComplete コールバックに通知します。 onComplete コールバックの詳細は、こちらをご確認ください。ファイアウォールに特定の権限が必要な場合は、Design Automation IP のリストを参照してください。 

3. WebSocket の実装 – モバイルや OS ネイティブのクライアント アプリに推奨

Forge Design Automation をクライアント デバイス(デスクトップやラップトップ コンピュータ、スマートフォン、タブレットなど)から直接使用する場合、クライアント デバイスで onComplete  または onProgress コールバックを設定することは出来ません。WebSocket を使用すると、Design Automation API サーバーとクライアントアプリの間に直接接続を持つことが出来ます。 WebSocket API  の詳細については、こちらを参照してください。

By Toshiaki Isezaki

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading