【发布时间】:2020-03-03 14:40:39
【问题描述】:
我必须在我的应用程序中实现断路器。一切正常,断路器正在工作,但我需要将其状态存储到数据库中。我怎样才能做到这一点?我在网上找不到任何可靠的东西。
这是用于断路器的代码:
public static IServiceCollection AddTenantService(this
IServiceCollection services, IConfiguration configuration)
{
var tenantServiceSettings = configuration?.GetSection("ApiEndpoints");
var tenantServiceBaseUrl = tenantServiceSettings.GetValue<string>("TenantServiceApiLink");
var advancedCircuitBreakerPolicy = Policy
.HandleResult<HttpResponseMessage>(r => !r.IsSuccessStatusCode)
.AdvancedCircuitBreakerAsync(0.5, TimeSpan.FromSeconds(30), 2,
TimeSpan.FromSeconds(30), onBreak: (exception, context) => Console.WriteLine($"{exception}"), onReset: null);
services.AddHttpClient<ITenantService, TenantService>(client => { client.BaseAddress = new
Uri(tenantServiceBaseUrl); })
.SetHandlerLifetime(TimeSpan.FromMinutes(5))
.AddPolicyHandler(advancedCircuitBreakerPolicy);
return services;
}
谢谢!
【问题讨论】:
标签: c# api polly circuit-breaker