Beispiel #1
0
        public static IHttpClientBuilder AddPolicyHandlers(this IHttpClientBuilder httpClientBuilder, string policySectionName, ILoggerFactory loggerFactory, IConfiguration configuration)
        {
            var retryLogger          = loggerFactory.CreateLogger("PollyHttpRetryPoliciesLogger");
            var circuitBreakerLogger = loggerFactory.CreateLogger("PollyHttpCircuitBreakerPoliciesLogger");

            var policyConfig = new PolicyConfig();

            configuration.Bind(policySectionName, policyConfig);

            var circuitBreakerPolicyConfig = (ICircuitBreakerPolicyConfig)policyConfig;
            var retryPolicyConfig          = (IRetryPolicyConfig)policyConfig;

            return(httpClientBuilder.AddRetryPolicyHandler(retryLogger, retryPolicyConfig)
                   .AddCircuitBreakerHandler(circuitBreakerLogger, circuitBreakerPolicyConfig));
        }
Beispiel #2
0
        public static IHttpClientBuilder AddPolicyHandlers(this IHttpClientBuilder httpClientBuilder, string policySectionName, IConfiguration configuration)
        {
            var serviceProvider      = httpClientBuilder.Services.BuildServiceProvider();
            var retryLogger          = serviceProvider.GetService <ILogger <HttpRetryPolicies> >();
            var circuitBreakerLogger = serviceProvider.GetService <ILogger <HttpCircuitBreakerPolicies> >();

            var policyConfig = new PolicyConfig();

            configuration.Bind(policySectionName, policyConfig);

            var circuitBreakerPolicyConfig = (ICircuitBreakerPolicyConfig)policyConfig;
            var retryPolicyConfig          = (IRetryPolicyConfig)policyConfig;

            return(httpClientBuilder.AddRetryPolicyHandler(retryLogger, retryPolicyConfig)
                   .AddCircuitBreakerHandler(circuitBreakerLogger, circuitBreakerPolicyConfig));
        }