用指数补偿计算延迟

时间:2019-01-08 21:26:16

标签: c# design-patterns delay retry-logic exponential-backoff

我正在根据以下页面上的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毫秒(如定义)。谁可以给我解释一下这个?

0 个答案:

没有答案
相关问题