pub struct Supervisor { /* private fields */ }Expand description
Builder/configuration for a supervised worker.
Implementations§
Source§impl Supervisor
impl Supervisor
Sourcepub fn new(name: impl Into<String>) -> Self
pub fn new(name: impl Into<String>) -> Self
Create a supervisor for a worker with the given diagnostic name.
Defaults: base_backoff = 10ms, max_backoff = 1s.
Sourcepub fn base_backoff(self, d: Duration) -> Self
pub fn base_backoff(self, d: Duration) -> Self
Override the initial post-panic backoff.
Sourcepub fn max_backoff(self, d: Duration) -> Self
pub fn max_backoff(self, d: Duration) -> Self
Override the maximum post-panic backoff.
Sourcepub fn spawn<F>(self, running: Arc<AtomicBool>, body: F) -> SupervisedWorker
pub fn spawn<F>(self, running: Arc<AtomicBool>, body: F) -> SupervisedWorker
Spawn the supervised worker.
The worker runs body repeatedly while running is true and the body
keeps returning WorkerStep::Continue. Each call to body is isolated
with catch_unwind; a panic is counted, the worker is marked unhealthy,
a bounded backoff is applied, and the loop continues.
Auto Trait Implementations§
impl Freeze for Supervisor
impl RefUnwindSafe for Supervisor
impl Send for Supervisor
impl Sync for Supervisor
impl Unpin for Supervisor
impl UnsafeUnpin for Supervisor
impl UnwindSafe for Supervisor
Blanket Implementations§
impl<T> Allocation for T
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