0

我正在根据以下页面上的 Microsoft 示例代码编写自己的带有指数退避的重试逻辑:https ://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/implement-resilient-applications/explore-自定义 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 毫秒,如定义的那样。谁可以给我解释一下这个?

4

0 回答 0