Я использую Polly Circuit Breaker для API, который генерирует пользовательское исключение, если сервис не работает из-за обслуживания.Исключение будет содержать значение, как долго служба будет недоступна.
Можно ли настроить / обновить политику автоматического выключателя после обработки первого пользовательского исключения?
например,
CircuitBreakerPolicy breaker = Policy.Handle<UserException>()
.CircuitBreaker(
exceptionsAllowedBeforeBreaking: 1,
durationOfBreak: TimeSpan.FromMinutes(1));
Example()
{
try
{
string response = await breaker.ExecuteAsync<String>(() =>
{
return client.GetStringAsync("/api/values/");
});
}
catch (UserException ex)
{
var downtime = GetDowntime(ex);
//how to update the duration of break ?
breaker.durationOfBreak = downtime;
}
catch (Exception ex)
{
…
}
}