HCHttpCallRequestSetRetryDelay
设置 HTTP 重试延迟(以秒为单位)。默认和最小延迟为 2 秒。语法
参数
call _In_opt_类型:HCCallHandle HTTP 调用的句柄。传入 nullptr 可为后续调用设置默认值。 retryDelayInSeconds _In_
类型:uint32_t 以秒为单位的重试延迟。
返回值
类型:HRESULT 此 API 操作的结果代码。可能的值有 S_OK 或 E_FAIL。备注
重试采用指数退避进行延迟。默认情况下,首先延迟 2 秒,然后下一次重试延迟 4 秒,接着 8 秒,依此类推,最长不超过 1 分钟,直到调用成功或达到 HTTP 超时窗口,此时调用将失败。延迟还会在当前延迟与下一次延迟之间进行抖动,以分散服务负载。HTTP 超时窗口的默认值为 20 秒,可使用 HCSettingsSetTimeoutWindow() 更改如果服务返回带有 “Retry-After” 标头的 HTTP 错误,则在达到 “Retry-After” 时间之前,所有后续对该 API 的调用都会立即以原始错误失败,而不会与服务通信。
幂等服务调用在发生网络错误或服务器返回以下 HTTP 状态代码之一时会被重试:
408 (Request Timeout)
429 (Too Many Requests)
500 (Internal Server Error)
502 (Bad Gateway)
503 (Service Unavailable)
504 (Gateway Timeout)
必须在调用 HCHttpCallPerformAsync 之前调用此函数。
