我正在根据以下页面上的Microsoft示例代码编写具有指数补偿的自己的重试逻辑:https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/implement-resilient-applications/explore-custom-http-call-retries-exponential-backoff
在下面的代码行中,我无法理解除以2:
int delay = Math.Min(m_delayMilliseconds * (m_pow - 1) / 2,
m_maxDelayMilliseconds);
假设我定义了int m_delayMilliseconds = 200
,所以我们得到以下延迟:
200 * 1/2-> 100毫秒
200 * 2/2-> 200毫秒
200 * 4/2-> 400毫秒
200 * 8/2-> 800毫秒
200 * 16/2-> 1600毫秒
。 。 。等
困扰我的是我的第一个延迟为100毫秒,但是我希望最小延迟为200毫秒(如定义)。谁可以给我解释一下这个?