Я пишу свою собственную логику повторных попыток с экспоненциальным откатом на основе примера кода 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 мс, как определено. Может кто-то объяснить это мне?