// GET api/values/5 public string Get(int id) { CircuitBreakerPolicy policy = Policy .Handle <TimeoutException>() .CircuitBreaker(2, TimeSpan.FromSeconds(10), (exception, timeSpan) => { }, () => { }); PolicyResult <IEnumerable <Stuff> > result = policy.ExecuteAndCapture(() => _valueProvider.GetStuff()); if (result.Outcome == OutcomeType.Failure) { return("it broke"); } return(string.Join(",", result.Result.Select(x => x.AboutTheStuff))); }
public void TriggerSuccess() => _circuitBreaker.ExecuteAndCapture(() => { });
/// <summary> /// 同步执行并返回结果 /// </summary> /// <param name="action">要执行的业务逻辑</param> /// <returns></returns> public PolicyResult ExecuteAndCapture(Action action) { return(_circuitBreaker.ExecuteAndCapture(action)); }