HCHttpCallRequestGetRetryDelay
HTTP 再試行遅延を秒単位で取得します。既定および最小の遅延は 2 秒です。構文
パラメーター
call _In_opt_型: HCCallHandle HTTP 呼び出しのハンドル。今後の呼び出しの既定値を取得するには nullptr を渡します。 retryDelayInSeconds _In_
型: uint32_t* 再試行遅延 (秒単位)。
戻り値
型: HRESULT この API 操作の結果コード。取り得る値は S_OK、E_INVALIDARG、または E_FAIL です。解説
再試行は指数バックオフを使用して遅延されます。既定では、2 秒の遅延、次の再試行は 4 秒、次に 8 秒、というように最大 1 分まで遅延され、呼び出しが成功するか HTTP タイムアウト ウィンドウに達するまで続きます。タイムアウト ウィンドウに達した時点で呼び出しは失敗します。遅延はサービス負荷を分散するために、現在の遅延と次の遅延の間でジッターも加えられます。HTTP タイムアウト ウィンドウの既定値は 20 秒で、HCSettingsSetTimeoutWindow() を使用して変更できますサービスが “Retry-After” ヘッダーを含む HTTP エラーを返した場合、その API に対する今後のすべての呼び出しは、“Retry-After” 時間に達するまで、サービスに接続することなく元のエラーで即座に失敗します。
ネットワーク エラーが発生した場合、またはサーバーが次の HTTP ステータス コードのいずれかで応答した場合、
冪等なサービス呼び出しは再試行されます:
408 (Request Timeout)
429 (Too Many Requests)
500 (Internal Server Error)
502 (Bad Gateway)
503 (Service Unavailable)
504 (Gateway Timeout)
