スロットリングのベスト プラクティスと推奨事項
PlayFab でスロットリングが発生すると、API 呼び出しが調整されていることを通知する HTTP 429 エラーが返されます。 応答ヘッダーと本文には、エラーを理解するためのキー情報が含まれています。
ヘッダーの例:
HTTP/1.1 429 Too Many Requests
Retry-After: 8
応答本文の例:
{
"code": 429,
"status": "TooManyRequests",
"retryAfterSeconds": 8,
"error": "APIClientRequestRateLimitExceeded",
"errorCode": 1199,
"errorMessage": "The client has exceeded the maximum API request rate and is being throttled"
}
"Retry-After と "retryAfterSeconds" プロパティは、スロットリングを回避するために別の要求を試行するまでの待機時間を秒単位で示します。 最新のクロスプラットフォーム C/C++ SDKを利用する場合、SDK は呼び出し元に代わって再試行を処理しようとします。 それ以外の場合は、再試行の値と共に以下の戦略を使用して、カスタム処理を開発します。
スロットリングの問題を軽減する
スロットリング エラーが引き続き発生する場合は、次の戦略を採用することを検討してください。
要求率の確認
- 大量の要求を送信する理由を分析します。
- API の対象となる特定のプレイヤーまたはタイトル エンティティの要求率を下げる方法を評価します。
API 呼び出しのバッチ処理
- API 呼び出しをバッチ処理して頻度を減らします。
- 例: バッチ プロファイルは、1 秒ごとに更新するのではなく、10 秒ごとに更新します。
重要事項
- スロットリング エラーは、エラーの性質の詳細を含む HTTP 429 応答を求めます。
- Retry-After プロパティと "retryAfterSeconds" プロパティを使用して、別の要求を行う前の待機時間を決定します。
- 頻度の高い要求の必要性を評価し、それに応じて最適化します。
- スロットリングに関する問題を軽減し、システム全体の効率を向上させるために、バッチ処理戦略を実装します。