diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs index e02bffcbd..a18ec2dc1 100644 --- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Startup.cs @@ -149,11 +149,11 @@ namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator //register http services var retriesWithExponentialBackoff = HttpPolicyExtensions .HandleTransientHttpError() - .WaitAndRetryAsync(7, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))); + .WaitAndRetryAsync(6, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))); var circuitBreaker = HttpPolicyExtensions .HandleTransientHttpError() - .CircuitBreakerAsync(6, TimeSpan.FromSeconds(30)); + .CircuitBreakerAsync(5, TimeSpan.FromSeconds(30)); services.AddHttpClient() .AddHttpMessageHandler() diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs index 8233f8fae..6eba724f2 100644 --- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs +++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Startup.cs @@ -154,11 +154,11 @@ namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator .HandleTransientHttpError() .Or() .OrResult(message => message.StatusCode == System.Net.HttpStatusCode.NotFound) - .WaitAndRetryAsync(7, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))); + .WaitAndRetryAsync(6, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))); var circuitBreaker = HttpPolicyExtensions .HandleTransientHttpError() - .CircuitBreakerAsync(6, TimeSpan.FromSeconds(30)); + .CircuitBreakerAsync(5, TimeSpan.FromSeconds(30)); services.AddHttpClient() .AddHttpMessageHandler() diff --git a/src/Web/WebMVC/Infrastructure/HttpClientDefaultPolicies.cs b/src/Web/WebMVC/Infrastructure/HttpClientDefaultPolicies.cs deleted file mode 100644 index 0cacb8a65..000000000 --- a/src/Web/WebMVC/Infrastructure/HttpClientDefaultPolicies.cs +++ /dev/null @@ -1,74 +0,0 @@ -using Microsoft.Extensions.Logging; -using Polly; -using Polly.CircuitBreaker; -using Polly.Retry; -using System; -using System.Net.Http; - -namespace WebMVC.Infrastructure -{ - public class HttpClientDefaultPolicies - { - //Config for Retries with exponential backoff policy - const int MAX_RETRIES = 6; - const int SECONDS_BASE_FOR_EXPONENTIAL_BACKOFF = 2; - - //Config for Circuit Breaker policy - const int EXCEPTIONS_ALLOWED_BEFORE_CIRCUIT_BREAKES = 5; - const int DURATION_OF_BREAK_IN_MINUTES = 1; - - private readonly ILogger _logger; - - public HttpClientDefaultPolicies(ILogger logger) - { - _logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public IAsyncPolicy GetWaitAndRetryPolicy() - { - RetryPolicy retryPolicy = - Policy.Handle() - .WaitAndRetryAsync( - // Maximum number of retries - MAX_RETRIES, - // exponential backofff (2sg, 4sg, 8sg, 16sg, 32sg. etc.) - retryAttempt => TimeSpan.FromSeconds(Math.Pow(SECONDS_BASE_FOR_EXPONENTIAL_BACKOFF, retryAttempt)), - // on retry - (exception, timeSpan, retryCount, context) => - { - var msg = $"Retry {retryCount} implemented with Polly's RetryPolicy " + - $"of {context.PolicyKey} " + - $"at {context.OperationKey}, " + - $"due to: {exception}."; - _logger.LogWarning(msg); - _logger.LogDebug(msg); - }); - - return retryPolicy.AsAsyncPolicy(); - } - - public IAsyncPolicy GetCircuitBreakerPolicy() - { - CircuitBreakerPolicy circuitBreakerPolicy = - Policy.Handle() - .CircuitBreakerAsync( - // Number of exceptions before breaking the circuit - EXCEPTIONS_ALLOWED_BEFORE_CIRCUIT_BREAKES, - // Duration of break - TimeSpan.FromMinutes(DURATION_OF_BREAK_IN_MINUTES), - (exception, duration) => - { - // On circuit opened (Circuit is broken) - _logger.LogTrace("Circuit has been broken"); - }, - () => - { - // on circuit closed - _logger.LogTrace("Circuit has been reset"); - }); - - - return circuitBreakerPolicy.AsAsyncPolicy(); - } - } -} diff --git a/src/Web/WebMVC/Startup.cs b/src/Web/WebMVC/Startup.cs index a0e1e90ba..735e8df6c 100644 --- a/src/Web/WebMVC/Startup.cs +++ b/src/Web/WebMVC/Startup.cs @@ -174,11 +174,11 @@ namespace Microsoft.eShopOnContainers.WebMVC var retriesWithExponentialBackoff = HttpPolicyExtensions .HandleTransientHttpError() .OrResult(msg=>msg.StatusCode == System.Net.HttpStatusCode.NotFound) - .WaitAndRetryAsync(5,retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))); + .WaitAndRetryAsync(6,retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))); var circuitBreaker = HttpPolicyExtensions .HandleTransientHttpError() - .CircuitBreakerAsync(6, TimeSpan.FromSeconds(30)); + .CircuitBreakerAsync(5, TimeSpan.FromSeconds(30)); //register delegating handlers services.AddTransient();