В моем приложении C# есть несколько именованных HttpClients. Я привязываю политики Polly (а именно, автоматический выключатель) к каждому из них.
Мне нужно зафиксировать, какой HttpClient отключил цепь в обратном вызове OnOpened, чтобы я мог сообщить об этом вызывающий абонент сообщает, что ClientX не работает.
Я вижу, что в OnCircuitOpenedArguments есть свойство OperationKey, и я думаю, что это то, что мне нужно, но я не могу понять, как его заполнить.
Примечание: я использую Polly v8 и Microsoft.Extensions.Http.Resilience.
Вот код, который у меня есть на данный момент:
В моей настройке DI
{
services
.AddHttpClient("ClientA")
.AddResilienceHandler("ClientA", (builder, context) =>
{
var strategyFactory = context.ServiceProvider.GetRequiredService();
builder.AddPipeline(strategyFactory.Create());
});
services
.AddHttpClient("ClientB")
.AddResilienceHandler("ClientB", (builder, context) =>
{
var strategyFactory = context.ServiceProvider.GetRequiredService();
builder.AddPipeline(strategyFactory.Create());
});
}
Вызванный выше фабричный метод
public ResiliencePipeline Create()
{
var builder = new ResiliencePipelineBuilder()
.AddTimeout(MapToTimeoutStrategyOptions())
.AddCircuitBreaker(MapToHttpCircuitBreakerStrategyOptions())
.AddRetry(MapToServiceNowHttpRetryStrategyOptions());
}
Определение автоматического выключателя
private HttpCircuitBreakerStrategyOptions MapToHttpCircuitBreakerStrategyOptions() =>
new()
{
MinimumThroughput = resiliencyConfig.CircuitBreakerConfig.Throughput,
FailureRatio = resiliencyConfig.CircuitBreakerConfig.FailureRatio,
SamplingDuration = TimeSpan.FromSeconds(resiliencyConfig.CircuitBreakerConfig.SamplingDuration),
BreakDuration = TimeSpan.FromSeconds(resiliencyConfig.CircuitBreakerConfig.DurationOfBreakSeconds),
OnClosed = args =>
{
//Signal that ClientX is back up
},
OnOpened = args =>
{
//Signal that ClientX is down
}
};
Подробнее здесь: https://stackoverflow.com/questions/792 ... d-callback
Определение того, какой автоматический выключатель Polly сработал в обратном вызове OnOpened ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Определение того, какой автоматический выключатель Polly сработал в обратном вызове OnOpened
Anonymous » » в форуме C# - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Автоматический выключатель Polly Http отключается только при исключении тайм-аута
Anonymous » » в форуме C# - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Автоматический выключатель Polly Http отключается только при исключении тайм-аута
Anonymous » » в форуме C# - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Автоматический выключатель Polly Http отключается только при исключении тайм-аута
Anonymous » » в форуме C# - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Автоматический выключатель Polly Http отключается только при исключении тайм-аута
Anonymous » » в форуме C# - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-