【发布时间】:2019-07-22 23:38:57
【问题描述】:
我需要查看一个断路器是否已关闭,但我的策略处于策略包装中。如何在包装中找到 CircuitBreakerPolicy(一个或多个)? 有没有更好的方法可以知道是否有任何断路器对给定的政策开放?
【问题讨论】:
标签: circuit-breaker polly
我需要查看一个断路器是否已关闭,但我的策略处于策略包装中。如何在包装中找到 CircuitBreakerPolicy(一个或多个)? 有没有更好的方法可以知道是否有任何断路器对给定的政策开放?
【问题讨论】:
标签: circuit-breaker polly
根据 Polly 文档:
断路器exposes its state 为breaker.CircuitState。
PolicyWrap 提供了一个variety of methods 允许您获取策略包。
例如:
var breaker = wrap.GetPolicy<CircuitBreakerPolicy>();
var state = breaker.CircuitState;
或:
var breaker = wrap.GetPolicy<CircuitBreakerPolicy>(p => p.PolicyKey == "SomeKey");
或:
IEnumerable<CircuitBreakerPolicy> breakers = wrap.GetPolicies<CircuitBreakerPolicy>();
CircuitBreakerPolicy(作为获取的类型)只是上面的一个例子。替换为您需要的特定类型:
CircuitBreakerPolicyAsyncCircuitBreakerPolicyAsyncCircuitBreakerPolicy<HttpResponseMessage>(或其他)
【讨论】: