HCHttpCallRequestGetRetryDelay
HTTP 再試行の遅延を取得します (秒単位)。 既定および最小の遅延は 2 秒です。
構文
HRESULT HCHttpCallRequestGetRetryDelay(
HCCallHandle call,
uint32_t* retryDelayInSeconds
)
パラメーター
call _In_opt_
型: HCCallHandle
HTTP 呼び出しのハンドル。 nullptr を渡して将来の呼び出しのために既定値を取得します。
retryDelayInSeconds _In_
型: uint32_t*
再試行の遅延 (秒単位)。
戻り値
型: HRESULT
この API 操作の結果コード。 値は、S_OK、E_INVALIDARG、または E_FAIL のいずれかになります。
解説
再試行は、指数バック オフを使用して遅延されます。 既定では、2 秒遅延された後、次の再試行は 4 秒遅延され、次は 8 秒となり、呼び出しが成功するか、または HTTP タイムアウト期間に到達するまでの間、最長 1 分まで遅延されます。 また、現在の遅延と次の遅延の間で遅延がジッターされることで、サービス負荷を分散します。 HTTP タイムアウト ウィンドウの既定値は 20 秒で、HCSettingsSetTimeoutWindow() を使用して変更できます
サービスにより、"Retry-After" ヘッダーを含む HTTP エラーが返された場合、"Retry-After" 時間に到達するまでの間、それ以降のその API への呼び出しはすべて、サービスへの問い合わせは行われることなく、元のエラーが返されて即座に失敗します。
ネットワーク エラーが発生した場合、またはサーバーが次のいずれかの HTTP 状態コードで応答した場合、
べき等サービス呼び出しが再試行されます。
408 (要求タイムアウト)
429 (要求が多すぎます)
500 (内部サーバー エラー)
502 (無効なゲートウェイ)
503 (サービスを利用できません)
504 (ゲートウェイ タイムアウト)
要件
ヘッダー: httpProvider.h
ライブラリ: libHttpClient.GDK.lib