fix: prevent database circuit failure storm
This commit is contained in:
@@ -59,6 +59,23 @@ public sealed class DatabaseCircuitBreakerTests
|
||||
Assert.Equal(0, DatabaseCircuitBreaker.ConsecutiveFailures);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void RecordFailure_while_circuit_is_open_does_not_grow_failure_counter()
|
||||
{
|
||||
for (var i = 0; i < FailureThreshold; i++)
|
||||
{
|
||||
DatabaseCircuitBreaker.RecordFailure();
|
||||
}
|
||||
|
||||
Assert.True(DatabaseCircuitBreaker.IsOpen);
|
||||
var failures = DatabaseCircuitBreaker.ConsecutiveFailures;
|
||||
|
||||
DatabaseCircuitBreaker.RecordFailure();
|
||||
DatabaseCircuitBreaker.RecordFailure(new DatabaseCircuitOpenException("already open"));
|
||||
|
||||
Assert.Equal(failures, DatabaseCircuitBreaker.ConsecutiveFailures);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void IsOpen_after_break_duration_transitions_to_half_open()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user