Я пытаюсь обновить Polly до версии 8, переписывая политики для использования нового ResiliencePipiline. В нескольких местах я использую HttpPolicyExtensions.HandleTransientHttpError()
HttpPolicyExtensions
.HandleTransientHttpError()
.WaitAndRetryAsync(3, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)));
Посмотрев на исходный код, я получил что-то вроде этого:
ResiliencePipelineBuilder()
.AddRetry(new RetryStrategyOptions()
{
ShouldHandle = new PredicateBuilder()
.Handle()
.HandleResult(response => response.StatusCode >= HttpStatusCode.InternalServerError || response.StatusCode == HttpStatusCode.RequestTimeout),
MaxRetryAttempts = 3,
DelayGenerator = static opt => ValueTask.FromResult((TimeSpan?)TimeSpan.FromSeconds(Math.Pow(2, opt.AttemptNumber)))
})
.Build();
Подробнее здесь: https://stackoverflow.com/questions/782 ... -new-polly