<PackageReference Include="Polly" Version="5.1.0" />

CircuitBreakerPolicy

public class CircuitBreakerPolicy : Policy
A circuit-breaker policy that can be applied to delegates.
using Polly.Utilities; using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace Polly.CircuitBreaker { public class CircuitBreakerPolicy : Policy { internal readonly ICircuitController<EmptyStruct> _breakerController; public CircuitState CircuitState => _breakerController.CircuitState; public Exception LastException => _breakerController.LastException; internal CircuitBreakerPolicy(Action<Action<Context, CancellationToken>, Context, CancellationToken> exceptionPolicy, IEnumerable<ExceptionPredicate> exceptionPredicates, ICircuitController<EmptyStruct> breakerController) : base(exceptionPolicy, exceptionPredicates) { _breakerController = breakerController; } public void Isolate() { _breakerController.Isolate(); } public void Reset() { _breakerController.Reset(); } internal CircuitBreakerPolicy(Func<Func<Context, CancellationToken, Task>, Context, CancellationToken, bool, Task> asyncExceptionPolicy, IEnumerable<ExceptionPredicate> exceptionPredicates, ICircuitController<EmptyStruct> breakerController) : base(asyncExceptionPolicy, exceptionPredicates) { _breakerController = breakerController; } } }