Table of Contents

Class AdvancedCircuitBreakerSyntax

Namespace
Polly
Assembly
Polly.dll

Fluent API for defining a Circuit Breaker Policy.

public static class AdvancedCircuitBreakerSyntax
Inheritance
AdvancedCircuitBreakerSyntax
Inherited Members

Methods

AdvancedCircuitBreaker(PolicyBuilder, double, TimeSpan, int, TimeSpan)

Builds a Policy that will function like a Circuit Breaker.

The circuit will break if, within any timeslice of duration samplingDuration, the proportion of actions resulting in a handled exception exceeds failureThreshold, provided also that the number of actions through the circuit in the timeslice is at least minimumThroughput.

The circuit will stay broken for the durationOfBreak. Any attempt to execute this policy while the circuit is broken, will immediately throw a BrokenCircuitException containing the exception that broke the circuit.

If the first action after the break duration period results in a handled exception, the circuit will break again for another durationOfBreak; if no exception is thrown, the circuit will reset.

public static CircuitBreakerPolicy AdvancedCircuitBreaker(this PolicyBuilder policyBuilder, double failureThreshold, TimeSpan samplingDuration, int minimumThroughput, TimeSpan durationOfBreak)

Parameters

policyBuilder PolicyBuilder

The policy builder.

failureThreshold double

The failure threshold at which the circuit will break (a number between 0 and 1; eg 0.5 represents breaking if 50% or more of actions result in a handled failure).

samplingDuration TimeSpan

The duration of the timeslice over which failure ratios are assessed.

minimumThroughput int

The minimum throughput: this many actions or more must pass through the circuit in the timeslice, for statistics to be considered significant and the circuit-breaker to come into action.

durationOfBreak TimeSpan

The duration the circuit will stay open before resetting.

Returns

CircuitBreakerPolicy

The policy instance.

Remarks

(see "Release It!" by Michael T. Nygard fi)

Exceptions

ArgumentOutOfRangeException

failureThreshold;Value must be greater than zero

ArgumentOutOfRangeException

failureThreshold;Value must be less than or equal to one

ArgumentOutOfRangeException

samplingDuration;Value must be equal to or greater than the minimum resolution of the CircuitBreaker timer

ArgumentOutOfRangeException

minimumThroughput;Value must be greater than one

ArgumentOutOfRangeException

durationOfBreak;Value must be greater than zero

AdvancedCircuitBreaker(PolicyBuilder, double, TimeSpan, int, TimeSpan, Action<Exception, TimeSpan, Context>, Action<Context>)

The circuit will break if, within any timeslice of duration samplingDuration, the proportion of actions resulting in a handled exception exceeds failureThreshold, provided also that the number of actions through the circuit in the timeslice is at least minimumThroughput.

The circuit will stay broken for the durationOfBreak. Any attempt to execute this policy while the circuit is broken, will immediately throw a BrokenCircuitException containing the exception that broke the circuit.

If the first action after the break duration period results in a handled exception, the circuit will break again for another durationOfBreak; if no exception is thrown, the circuit will reset.

public static CircuitBreakerPolicy AdvancedCircuitBreaker(this PolicyBuilder policyBuilder, double failureThreshold, TimeSpan samplingDuration, int minimumThroughput, TimeSpan durationOfBreak, Action<Exception, TimeSpan, Context> onBreak, Action<Context> onReset)

Parameters

policyBuilder PolicyBuilder

The policy builder.

failureThreshold double

The failure threshold at which the circuit will break (a number between 0 and 1; eg 0.5 represents breaking if 50% or more of actions result in a handled failure.

samplingDuration TimeSpan

The duration of the timeslice over which failure ratios are assessed.

minimumThroughput int

The minimum throughput: this many actions or more must pass through the circuit in the timeslice, for statistics to be considered significant and the circuit-breaker to come into action.

durationOfBreak TimeSpan

The duration the circuit will stay open before resetting.

onBreak Action<Exception, TimeSpan, Context>

The action to call when the circuit transitions to an Open state.

onReset Action<Context>

The action to call when the circuit resets to a Closed state.

Returns

CircuitBreakerPolicy

The policy instance.

Remarks

(see "Release It!" by Michael T. Nygard fi)

Exceptions

ArgumentOutOfRangeException

failureThreshold;Value must be greater than zero

ArgumentOutOfRangeException

failureThreshold;Value must be less than or equal to one

ArgumentOutOfRangeException

samplingDuration;Value must be equal to or greater than the minimum resolution of the CircuitBreaker timer

ArgumentOutOfRangeException

minimumThroughput;Value must be greater than one

ArgumentOutOfRangeException

durationOfBreak;Value must be greater than zero

ArgumentNullException

onBreak

ArgumentNullException

onReset

AdvancedCircuitBreaker(PolicyBuilder, double, TimeSpan, int, TimeSpan, Action<Exception, TimeSpan, Context>, Action<Context>, Action)

Builds a Policy that will function like a Circuit Breaker.

The circuit will break if, within any timeslice of duration samplingDuration, the proportion of actions resulting in a handled exception exceeds failureThreshold, provided also that the number of actions through the circuit in the timeslice is at least minimumThroughput.

The circuit will stay broken for the durationOfBreak. Any attempt to execute this policy while the circuit is broken, will immediately throw a BrokenCircuitException containing the exception that broke the circuit.

If the first action after the break duration period results in a handled exception, the circuit will break again for another durationOfBreak; if no exception is thrown, the circuit will reset.

public static CircuitBreakerPolicy AdvancedCircuitBreaker(this PolicyBuilder policyBuilder, double failureThreshold, TimeSpan samplingDuration, int minimumThroughput, TimeSpan durationOfBreak, Action<Exception, TimeSpan, Context> onBreak, Action<Context> onReset, Action onHalfOpen)

Parameters

policyBuilder PolicyBuilder

The policy builder.

failureThreshold double

The failure threshold at which the circuit will break (a number between 0 and 1; eg 0.5 represents breaking if 50% or more of actions result in a handled failure.

samplingDuration TimeSpan

The duration of the timeslice over which failure ratios are assessed.

minimumThroughput int

The minimum throughput: this many actions or more must pass through the circuit in the timeslice, for statistics to be considered significant and the circuit-breaker to come into action.

durationOfBreak TimeSpan

The duration the circuit will stay open before resetting.

onBreak Action<Exception, TimeSpan, Context>

The action to call when the circuit transitions to an Open state.

onReset Action<Context>

The action to call when the circuit resets to a Closed state.

onHalfOpen Action

The action to call when the circuit transitions to HalfOpen state, ready to try action executions again.

Returns

CircuitBreakerPolicy

The policy instance.

Remarks

(see "Release It!" by Michael T. Nygard fi)

Exceptions

ArgumentOutOfRangeException

failureThreshold;Value must be greater than zero

ArgumentOutOfRangeException

failureThreshold;Value must be less than or equal to one

ArgumentOutOfRangeException

samplingDuration;Value must be equal to or greater than the minimum resolution of the CircuitBreaker timer

ArgumentOutOfRangeException

minimumThroughput;Value must be greater than one

ArgumentOutOfRangeException

durationOfBreak;Value must be greater than zero

ArgumentNullException

onBreak

ArgumentNullException

onReset

ArgumentNullException

onHalfOpen

AdvancedCircuitBreaker(PolicyBuilder, double, TimeSpan, int, TimeSpan, Action<Exception, TimeSpan>, Action)

The circuit will break if, within any timeslice of duration samplingDuration, the proportion of actions resulting in a handled exception exceeds failureThreshold, provided also that the number of actions through the circuit in the timeslice is at least minimumThroughput.

The circuit will stay broken for the durationOfBreak. Any attempt to execute this policy while the circuit is broken, will immediately throw a BrokenCircuitException containing the exception that broke the circuit.

If the first action after the break duration period results in a handled exception, the circuit will break again for another durationOfBreak; if no exception is thrown, the circuit will reset.

public static CircuitBreakerPolicy AdvancedCircuitBreaker(this PolicyBuilder policyBuilder, double failureThreshold, TimeSpan samplingDuration, int minimumThroughput, TimeSpan durationOfBreak, Action<Exception, TimeSpan> onBreak, Action onReset)

Parameters

policyBuilder PolicyBuilder

The policy builder.

failureThreshold double

The failure threshold at which the circuit will break (a number between 0 and 1; eg 0.5 represents breaking if 50% or more of actions result in a handled failure.

samplingDuration TimeSpan

The duration of the timeslice over which failure ratios are assessed.

minimumThroughput int

The minimum throughput: this many actions or more must pass through the circuit in the timeslice, for statistics to be considered significant and the circuit-breaker to come into action.

durationOfBreak TimeSpan

The duration the circuit will stay open before resetting.

onBreak Action<Exception, TimeSpan>

The action to call when the circuit transitions to an Open state.

onReset Action

The action to call when the circuit resets to a Closed state.

Returns

CircuitBreakerPolicy

The policy instance.

Remarks

(see "Release It!" by Michael T. Nygard fi)

Exceptions

ArgumentOutOfRangeException

failureThreshold;Value must be greater than zero

ArgumentOutOfRangeException

failureThreshold;Value must be less than or equal to one

ArgumentOutOfRangeException

samplingDuration;Value must be equal to or greater than the minimum resolution of the CircuitBreaker timer

ArgumentOutOfRangeException

minimumThroughput;Value must be greater than one

ArgumentOutOfRangeException

durationOfBreak;Value must be greater than zero

ArgumentNullException

onBreak

ArgumentNullException

onReset

AdvancedCircuitBreaker(PolicyBuilder, double, TimeSpan, int, TimeSpan, Action<Exception, TimeSpan>, Action, Action)

The circuit will break if, within any timeslice of duration samplingDuration, the proportion of actions resulting in a handled exception exceeds failureThreshold, provided also that the number of actions through the circuit in the timeslice is at least minimumThroughput.

The circuit will stay broken for the durationOfBreak. Any attempt to execute this policy while the circuit is broken, will immediately throw a BrokenCircuitException containing the exception that broke the circuit.

If the first action after the break duration period results in a handled exception, the circuit will break again for another durationOfBreak; if no exception is thrown, the circuit will reset.

public static CircuitBreakerPolicy AdvancedCircuitBreaker(this PolicyBuilder policyBuilder, double failureThreshold, TimeSpan samplingDuration, int minimumThroughput, TimeSpan durationOfBreak, Action<Exception, TimeSpan> onBreak, Action onReset, Action onHalfOpen)

Parameters

policyBuilder PolicyBuilder

The policy builder.

failureThreshold double

The failure threshold at which the circuit will break (a number between 0 and 1; eg 0.5 represents breaking if 50% or more of actions result in a handled failure.

samplingDuration TimeSpan

The duration of the timeslice over which failure ratios are assessed.

minimumThroughput int

The minimum throughput: this many actions or more must pass through the circuit in the timeslice, for statistics to be considered significant and the circuit-breaker to come into action.

durationOfBreak TimeSpan

The duration the circuit will stay open before resetting.

onBreak Action<Exception, TimeSpan>

The action to call when the circuit transitions to an Open state.

onReset Action

The action to call when the circuit resets to a Closed state.

onHalfOpen Action

The action to call when the circuit transitions to HalfOpen state, ready to try action executions again.

Returns

CircuitBreakerPolicy

The policy instance.

Remarks

(see "Release It!" by Michael T. Nygard fi)

Exceptions

ArgumentOutOfRangeException

failureThreshold;Value must be greater than zero

ArgumentOutOfRangeException

failureThreshold;Value must be less than or equal to one

ArgumentOutOfRangeException

samplingDuration;Value must be equal to or greater than the minimum resolution of the CircuitBreaker timer

ArgumentOutOfRangeException

minimumThroughput;Value must be greater than one

ArgumentOutOfRangeException

durationOfBreak;Value must be greater than zero

ArgumentNullException

onBreak

ArgumentNullException

onReset

ArgumentNullException

onHalfOpen