I am trying to upgrade Polly to v8, re-writing policies to utilize new ResiliencePipiline. At couple of places I am using HttpPolicyExtensions.HandleTransientHttpError()
HttpPolicyExtensions .HandleTransientHttpError() .WaitAndRetryAsync(3, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)));
Looking at the source code I've endup with something like this:
new ResiliencePipelineBuilder<HttpResponseMessage>() .AddRetry( new RetryStrategyOptions<HttpResponseMessage>() { ShouldHandle = new PredicateBuilder<HttpResponseMessage>() .Handle<HttpRequestException>() .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();