Refactored internal ResiliencePolicy base class and ResiliencePolicyFactory
This commit is contained in:
parent
46fd872fe8
commit
c0c0941c4c
@ -4,7 +4,7 @@ using System.Text;
|
||||
|
||||
namespace Microsoft.eShopOnContainers.BuildingBlocks.Resilience.HttpResilience.Policies
|
||||
{
|
||||
internal class CircuitBreakerPolicy : ResilientPolicy
|
||||
internal class CircuitBreakerPolicy : ResiliencePolicy
|
||||
{
|
||||
public CircuitBreakerPolicy(int exceptionsAllowedBeforeBreaking, int durationOfBreakInMinutes)
|
||||
{
|
||||
|
@ -4,7 +4,7 @@ using System.Text;
|
||||
|
||||
namespace Microsoft.eShopOnContainers.BuildingBlocks.Resilience.HttpResilience.Policies
|
||||
{
|
||||
internal class RetryPolicy : ResilientPolicy
|
||||
internal class RetryPolicy : ResiliencePolicy
|
||||
{
|
||||
public RetryPolicy(int retries, int backoffSeconds, bool exponentialBackoff)
|
||||
{
|
||||
|
@ -4,7 +4,7 @@ using System.Text;
|
||||
|
||||
namespace Microsoft.eShopOnContainers.BuildingBlocks.Resilience.HttpResilience
|
||||
{
|
||||
public class ResilientPolicy
|
||||
public class ResiliencePolicy
|
||||
{
|
||||
}
|
||||
}
|
@ -5,14 +5,14 @@ using System.Text;
|
||||
|
||||
namespace Microsoft.eShopOnContainers.BuildingBlocks.Resilience.HttpResilience
|
||||
{
|
||||
public static class ResilientPolicyFactory
|
||||
public static class ResiliencePolicyFactory
|
||||
{
|
||||
public static ResilientPolicy CreateRetryPolicy(int retries, int backoffSeconds, bool exponentialBackoff)
|
||||
public static ResiliencePolicy CreateRetryPolicy(int retries, int backoffSeconds, bool exponentialBackoff)
|
||||
{
|
||||
return new RetryPolicy(retries, backoffSeconds, exponentialBackoff);
|
||||
}
|
||||
|
||||
public static ResilientPolicy CreateCiscuitBreakerPolicy(int exceptionsAllowedBeforeBreaking, int durationOfBreakInMinutes)
|
||||
public static ResiliencePolicy CreateCiscuitBreakerPolicy(int exceptionsAllowedBeforeBreaking, int durationOfBreakInMinutes)
|
||||
{
|
||||
return new CircuitBreakerPolicy(exceptionsAllowedBeforeBreaking, durationOfBreakInMinutes);
|
||||
}
|
@ -32,7 +32,7 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.Resilience.HttpResilience
|
||||
_policyWrapper = Policy.WrapAsync(policies.ToArray());
|
||||
}
|
||||
|
||||
public ResilientHttpClient(List<ResilientPolicy> policies, ILogger<ResilientHttpClient> logger)
|
||||
public ResilientHttpClient(List<ResiliencePolicy> policies, ILogger<ResilientHttpClient> logger)
|
||||
{
|
||||
_client = new HttpClient();
|
||||
_logger = logger;
|
||||
@ -41,7 +41,7 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.Resilience.HttpResilience
|
||||
_policyWrapper = Policy.WrapAsync(GeneratePolicies(policies));
|
||||
}
|
||||
|
||||
private Policy[] GeneratePolicies(IList<ResilientPolicy> policies)
|
||||
private Policy[] GeneratePolicies(IList<ResiliencePolicy> policies)
|
||||
{
|
||||
var pollyPolicies = new List<Policy>();
|
||||
|
||||
|
@ -58,13 +58,13 @@ namespace Microsoft.eShopOnContainers.WebMVC
|
||||
services.AddTransient<IBasketService, BasketService>();
|
||||
services.AddTransient<IIdentityParser<ApplicationUser>, IdentityParser>();
|
||||
|
||||
if (Configuration.GetValue<string>("ActivateCircuitBreaker") == bool.TrueString)
|
||||
if (Configuration.GetValue<string>("UseResilientHttp") == bool.TrueString)
|
||||
{
|
||||
services.AddSingleton(
|
||||
new List<ResilientPolicy>
|
||||
new List<ResiliencePolicy>
|
||||
{
|
||||
ResilientPolicyFactory.CreateRetryPolicy(6, 2, true),
|
||||
ResilientPolicyFactory.CreateCiscuitBreakerPolicy(5, 1)
|
||||
ResiliencePolicyFactory.CreateRetryPolicy(6, 2, true),
|
||||
ResiliencePolicyFactory.CreateCiscuitBreakerPolicy(5, 1)
|
||||
});
|
||||
services.AddTransient<IHttpClient, ResilientHttpClient>();
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
"BasketUrl": "http://localhost:5103",
|
||||
"IdentityUrl": "http://localhost:5105",
|
||||
"CallBackUrl": "http://localhost:5100/",
|
||||
"ActivateCircuitBreaker": "True",
|
||||
"UseResilientHttp": "True",
|
||||
"Logging": {
|
||||
"IncludeScopes": false,
|
||||
"LogLevel": {
|
||||
|
Loading…
x
Reference in New Issue
Block a user