arrow-fx-coroutines / arrow.fx.coroutines / CircuitBreaker / State / HalfOpen / <init>

<init>

HalfOpen(resetTimeoutNanos: Double)

State of the CircuitBreaker in which the circuit breaker has already allowed a task to go through, as a reset attempt, in order to test the connection.

Contract:

  • The first task when Open has expired is allowed through without failing fast, just before the circuit breaker is evolved into the HalfOpen state.
  • All tasks attempted in HalfOpen fail-fast with an exception just as in Open state.
  • If that task attempt succeeds, the breaker is reset back to the Closed state, with the resetTimeout and the failures count also reset to initial values.
  • If the first call fails, the breaker is tripped again into the Open state (the resetTimeout is multiplied by the exponential backoff factor).

Parameters

resetTimeoutNanos - is the current resetTimeout that was applied to the previous Open state, to be multiplied by the exponential backoff factor for the next transition to Open, in case the reset attempt fails.HalfOpen(resetTimeout: Duration, awaitClose: Promise<Unit>)

Do you like Arrow?

Arrow Org
<