检查包裹中的 Polly 断路器是否闭合?

Check if a Polly circuit breaker in a wrap is closed?

我需要查看熔断机制是否已关闭,但我的政策处于政策包装中。如何在包裹中找到 CircuitBreakerPolicy(一个或多个)? 有没有更好的方法来了解是否有任何断路器对给定策略开放?

根据 Polly 文档:

例如:

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(作为获取的类型)只是上面的一个例子。替换为您需要的特定类型:

  • CircuitBreakerPolicy
  • AsyncCircuitBreakerPolicy
  • AsyncCircuitBreakerPolicy<HttpResponseMessage>

(或其他)