Я заменяю текущие политики повторных попыток структурой Polly. Раньше я определял свою стратегию повторения следующим образом:
var strategy = new ExponentialBackoff(RetryStrategy.DefaultClientRetryCount, RetryStrategy.DefaultMinBackoff, RetryStrategy.DefaultMaxBackoff, RetryStrategy.DefaultClientBackoff);
где DefaultClientRetryCount
- количество повторных попыток
и затем exponentialBackoff вычисляет время ожидания между повторными попытками на основе переменных: DefaultMinBackoff
- минимальный промежуток времени между повторными попытками; DefaultMaxBackoff
- максимальный промежуток времени; DefaultClientBackoff
- это значение по умолчанию, используемое для вычисления случайной дельты между повторными попытками.
В Polly я определяю свой retryPolicy следующим образом:
var retryPolicy = Policy.Handle<Exception>(ex => _transientErrorDetectionStrategy.IsTransient(ex)).WaitAndRetryAsync(int retryCount, Func<int,timespan> sleepDuration);
Где retryCount
- это количество повторных попыток, а sleepDuration
- это время между повторными попытками.
Как мне реплицировать промежуток времени между повторными попытками, созданными в предыдущей политике, для отправки в качестве параметра методу WaitAndRetryAsync
в Polly?