次の方法で共有


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

関連項目

httpProvider