pub struct CircuitBreaker { /* private fields */ }Expand description
Failure counter that opens after threshold failures.
A breaker starts Closed. record_failure opens it
once failures reach the threshold; record_success
closes it and clears the count.
Implementations§
Source§impl CircuitBreaker
impl CircuitBreaker
Sourcepub fn new(threshold: usize, reset_timeout: Duration) -> Self
pub fn new(threshold: usize, reset_timeout: Duration) -> Self
Creates a breaker that opens after threshold failures.
reset_timeout records how long after a failure a recovery may be
attempted; the stored timestamp is updated on each failure.
Sourcepub fn reset_timeout(&self) -> Duration
pub fn reset_timeout(&self) -> Duration
Returns the reset timeout.
Sourcepub fn state(&self) -> BreakerState
pub fn state(&self) -> BreakerState
Returns the current BreakerState.
Sourcepub fn record_success(&self)
pub fn record_success(&self)
Closes the breaker and clears the failure count.
Sourcepub fn record_failure(&self)
pub fn record_failure(&self)
Records a failure and opens the breaker once the threshold is reached.
Auto Trait Implementations§
impl !Freeze for CircuitBreaker
impl RefUnwindSafe for CircuitBreaker
impl Send for CircuitBreaker
impl Sync for CircuitBreaker
impl Unpin for CircuitBreaker
impl UnsafeUnpin for CircuitBreaker
impl UnwindSafe for CircuitBreaker
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more