Tag: circuit breaker

Polly政策应该是单身吗?

我有一个查询, IGetHamburgers ,它调用外部API。 我在我的DI容器中注册了IGetHamburgers的实现,作为Singleton。 我使用Polly作为断路器,如果两个请求失败,电路将打开。 我的目标是所有对Hamburger api的调用应该通过相同的断路器,如果GetHamburgers失败,那么所有其他调用也应该失败。 我该如何使用我的保单? 我应该将我的政策注册为如下字段: private Policy _policy; private Policy Policy { get { if(this_policy != null) { return this_policy; } this._policy = Policy .Handle() .CircuitBreaker(2, TimeSpan.FromMinutes(1)); return this._policy; } } public object Execute(…….) { return Policy.Execute(() => this.hamburgerQuery.GetHamburgers()); } 要么 public object Execute(…….) { var breaker = Policy .Handle() .CircuitBreaker(2, […]

Polly断路器模式 – 用于测试连接线

我正在尝试使用Polly测试连接字符串是否为null。 如果它为null,我想使用CircuitBreaker尝试三次,并且应该在Console窗口中输出消息。 Policy policy = null; // Break the circuit after the specified number of exceptions // and keep circuit broken for the specified duration. policy = Policy .Handle() .CircuitBreaker(3, TimeSpan.FromSeconds(30)); try { string connected = policy.Execute(() => repository.GetConnectionString()); } catch (Exception ex) { Console.WriteLine(“{0}”,ex.Message); } 和GetConnectionString方法是: public string GetConnectionString() { SqlConnection conn = new […]