pub struct CircuitBreaker { /* private fields */ }Expand description
Per-(plugin, qname) circuit breaker.
Implementations§
Source§impl CircuitBreaker
impl CircuitBreaker
Sourcepub fn new(cfg: BreakerConfig) -> Self
pub fn new(cfg: BreakerConfig) -> Self
Construct a breaker with the given config.
Sourcepub fn allow(&self, plugin: &PluginId, qname: &QName) -> bool
pub fn allow(&self, plugin: &PluginId, qname: &QName) -> bool
Check whether the breaker permits the call. Call before invoking
the plugin; if false, fail fast without invocation.
Sourcepub fn record_success(&self, plugin: &PluginId, qname: &QName)
pub fn record_success(&self, plugin: &PluginId, qname: &QName)
Record a successful invocation; resets the failure counter.
Sourcepub fn record_failure(&self, plugin: &PluginId, qname: &QName)
pub fn record_failure(&self, plugin: &PluginId, qname: &QName)
Record a failed invocation; trips the breaker if the threshold is met.
Sourcepub fn failure_count(&self, plugin: &PluginId, qname: &QName) -> u64
pub fn failure_count(&self, plugin: &PluginId, qname: &QName) -> u64
Returns the current consecutive-failure count for diagnostics.
Trait Implementations§
Source§impl Debug for CircuitBreaker
impl Debug for CircuitBreaker
Auto Trait Implementations§
impl !RefUnwindSafe for CircuitBreaker
impl !UnwindSafe for CircuitBreaker
impl Freeze for CircuitBreaker
impl Send for CircuitBreaker
impl Sync for CircuitBreaker
impl Unpin for CircuitBreaker
impl UnsafeUnpin for CircuitBreaker
Blanket Implementations§
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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