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
PolicyBuilderThe policy builder.
failureThreshold
doubleThe 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
TimeSpanThe duration of the timeslice over which failure ratios are assessed.
minimumThroughput
intThe 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
TimeSpanThe 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
PolicyBuilderThe policy builder.
failureThreshold
doubleThe 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
TimeSpanThe duration of the timeslice over which failure ratios are assessed.
minimumThroughput
intThe 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
TimeSpanThe 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
PolicyBuilderThe policy builder.
failureThreshold
doubleThe 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
TimeSpanThe duration of the timeslice over which failure ratios are assessed.
minimumThroughput
intThe 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
TimeSpanThe 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
ActionThe 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
PolicyBuilderThe policy builder.
failureThreshold
doubleThe 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
TimeSpanThe duration of the timeslice over which failure ratios are assessed.
minimumThroughput
intThe 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
TimeSpanThe 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
ActionThe 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
PolicyBuilderThe policy builder.
failureThreshold
doubleThe 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
TimeSpanThe duration of the timeslice over which failure ratios are assessed.
minimumThroughput
intThe 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
TimeSpanThe 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
ActionThe action to call when the circuit resets to a Closed state.
onHalfOpen
ActionThe 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