Class AdvancedCircuitBreakerTResultSyntaxAsync
- Namespace
- Polly
- Assembly
- Polly.dll
Fluent API for defining a Circuit Breaker Policy.
public static class AdvancedCircuitBreakerTResultSyntaxAsync
- Inheritance
-
AdvancedCircuitBreakerTResultSyntaxAsync
- Inherited Members
Methods
AdvancedCircuitBreakerAsync<TResult>(PolicyBuilder<TResult>, 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 or result 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 or result
that broke the circuit.
If the first action after the break duration period results in a handled exception or result, the circuit will break
again for another durationOfBreak
; if no exception or handled result is encountered, the circuit will reset.
public static CircuitBreakerPolicy<TResult> AdvancedCircuitBreakerAsync<TResult>(this PolicyBuilder<TResult> policyBuilder, double failureThreshold, TimeSpan samplingDuration, int minimumThroughput, TimeSpan durationOfBreak)
Parameters
policyBuilder
PolicyBuilder<TResult>The 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<TResult>
The policy instance.
Type Parameters
TResult
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
AdvancedCircuitBreakerAsync<TResult>(PolicyBuilder<TResult>, double, TimeSpan, int, TimeSpan, Action<DelegateResult<TResult>, TimeSpan, Context>, Action<Context>)
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 or result
that broke the circuit.
If the first action after the break duration period results in a handled exception or result, the circuit will break
again for another durationOfBreak
; if no exception or handled result is encountered, the circuit will reset.
public static CircuitBreakerPolicy<TResult> AdvancedCircuitBreakerAsync<TResult>(this PolicyBuilder<TResult> policyBuilder, double failureThreshold, TimeSpan samplingDuration, int minimumThroughput, TimeSpan durationOfBreak, Action<DelegateResult<TResult>, TimeSpan, Context> onBreak, Action<Context> onReset)
Parameters
policyBuilder
PolicyBuilder<TResult>The 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<DelegateResult<TResult>, 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<TResult>
The policy instance.
Type Parameters
TResult
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
AdvancedCircuitBreakerAsync<TResult>(PolicyBuilder<TResult>, double, TimeSpan, int, TimeSpan, Action<DelegateResult<TResult>, 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 or result
that broke the circuit.
If the first action after the break duration period results in a handled exception or result, the circuit will break
again for another durationOfBreak
; if no exception or handled result is encountered, the circuit will reset.
public static CircuitBreakerPolicy<TResult> AdvancedCircuitBreakerAsync<TResult>(this PolicyBuilder<TResult> policyBuilder, double failureThreshold, TimeSpan samplingDuration, int minimumThroughput, TimeSpan durationOfBreak, Action<DelegateResult<TResult>, TimeSpan, Context> onBreak, Action<Context> onReset, Action onHalfOpen)
Parameters
policyBuilder
PolicyBuilder<TResult>The 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<DelegateResult<TResult>, 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<TResult>
The policy instance.
Type Parameters
TResult
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
AdvancedCircuitBreakerAsync<TResult>(PolicyBuilder<TResult>, double, TimeSpan, int, TimeSpan, Action<DelegateResult<TResult>, TimeSpan>, 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 or result
that broke the circuit.
If the first action after the break duration period results in a handled exception or result, the circuit will break
again for another durationOfBreak
; if no exception or handled result is encountered, the circuit will reset.
public static CircuitBreakerPolicy<TResult> AdvancedCircuitBreakerAsync<TResult>(this PolicyBuilder<TResult> policyBuilder, double failureThreshold, TimeSpan samplingDuration, int minimumThroughput, TimeSpan durationOfBreak, Action<DelegateResult<TResult>, TimeSpan> onBreak, Action onReset)
Parameters
policyBuilder
PolicyBuilder<TResult>The 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<DelegateResult<TResult>, 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<TResult>
The policy instance.
Type Parameters
TResult
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
AdvancedCircuitBreakerAsync<TResult>(PolicyBuilder<TResult>, double, TimeSpan, int, TimeSpan, Action<DelegateResult<TResult>, TimeSpan>, Action, 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 or result
that broke the circuit.
If the first action after the break duration period results in a handled exception or result, the circuit will break
again for another durationOfBreak
; if no exception or handled result is encountered, the circuit will reset.
public static CircuitBreakerPolicy<TResult> AdvancedCircuitBreakerAsync<TResult>(this PolicyBuilder<TResult> policyBuilder, double failureThreshold, TimeSpan samplingDuration, int minimumThroughput, TimeSpan durationOfBreak, Action<DelegateResult<TResult>, TimeSpan> onBreak, Action onReset, Action onHalfOpen)
Parameters
policyBuilder
PolicyBuilder<TResult>The 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<DelegateResult<TResult>, 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<TResult>
The policy instance.
Type Parameters
TResult
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