final class Builders[F[_]] extends AnyVal with CircuitBreakerDocs
Builders specified for CircuitBreaker, using the Partially-Applied Type technique.
- Alphabetic
- By Inheritance
- Builders
- CircuitBreakerDocs
- AnyVal
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new Builders(F: Sync[F])
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- Any
-
final
def
##(): Int
- Definition Classes
- Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- Any
- val F: Sync[F]
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
getClass(): Class[_ <: AnyVal]
- Definition Classes
- AnyVal → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
of(maxFailures: Int, resetTimeout: FiniteDuration, exponentialBackoffFactor: Double = 1.0, maxResetTimeout: Duration = Duration.Inf, onRejected: F[Unit] = F.unit, onClosed: F[Unit] = F.unit, onHalfOpen: F[Unit] = F.unit, onOpen: F[Unit] = F.unit, padding: PaddingStrategy = NoPadding)(implicit clock: Clock[F]): F[CircuitBreaker[F]]
Safe builder for a CircuitBreaker reference.
Safe builder for a CircuitBreaker reference.
- maxFailures
is the maximum count for failures before opening the circuit breaker
- resetTimeout
is the timeout to wait in the
Open
state before attempting a close of the circuit breaker (but without the backoff factor applied)- exponentialBackoffFactor
is a factor to use for resetting the
resetTimeout
when in theHalfOpen
state, in case the attempt toClose
fails- maxResetTimeout
is the maximum timeout the circuit breaker is allowed to use when applying the
exponentialBackoffFactor
- onRejected
is a callback for signaling rejected tasks, so every time a task execution is attempted and rejected in Open or HalfOpen states
- onClosed
is a callback for signaling transitions to the Closed state
- onHalfOpen
is a callback for signaling transitions to HalfOpen
- onOpen
is a callback for signaling transitions to Open
- padding
is the PaddingStrategy to apply to the underlying atomic reference used, to use in case contention and "false sharing" become a problem
-
def
toString(): String
- Definition Classes
- Any
-
def
unsafe(maxFailures: Int, resetTimeout: FiniteDuration, exponentialBackoffFactor: Double = 1.0, maxResetTimeout: Duration = Duration.Inf, onRejected: F[Unit] = F.unit, onClosed: F[Unit] = F.unit, onHalfOpen: F[Unit] = F.unit, onOpen: F[Unit] = F.unit, padding: PaddingStrategy = NoPadding)(implicit clock: Clock[F]): CircuitBreaker[F]
Unsafe builder, an alternative to CircuitBreaker[F].of for people knowing what they are doing.
Unsafe builder, an alternative to CircuitBreaker[F].of for people knowing what they are doing.
UNSAFE WARNING: this builder is unsafe to use because creating a circuit breaker allocates shared mutable states, which violates referential transparency. Prefer to use the safe CircuitBreaker[F].of and pass that
CircuitBreaker
around as a plain parameter.- maxFailures
is the maximum count for failures before opening the circuit breaker
- resetTimeout
is the timeout to wait in the
Open
state before attempting a close of the circuit breaker (but without the backoff factor applied)- exponentialBackoffFactor
is a factor to use for resetting the
resetTimeout
when in theHalfOpen
state, in case the attempt toClose
fails- maxResetTimeout
is the maximum timeout the circuit breaker is allowed to use when applying the
exponentialBackoffFactor
- onRejected
is a callback for signaling rejected tasks, so every time a task execution is attempted and rejected in Open or HalfOpen states
- onClosed
is a callback for signaling transitions to the Closed state
- onHalfOpen
is a callback for signaling transitions to HalfOpen
- onOpen
is a callback for signaling transitions to Open
- padding
is the PaddingStrategy to apply to the underlying atomic reference used, to use in case contention and "false sharing" become a problem
- Annotations
- @UnsafeBecauseImpure()