Struct ShutdownCoordinator
pub struct ShutdownCoordinator {
phase: ShutdownPhase,
config: ShutdownConfig,
started_at: Option<Instant>,
draining_actors: Vec<ActorId>,
drained_actors: Vec<ActorId>,
force_killed: Vec<ActorId>,
}Expand description
Manages the graceful shutdown process.
Fields§
§phase: ShutdownPhase§config: ShutdownConfig§started_at: Option<Instant>§draining_actors: Vec<ActorId>§drained_actors: Vec<ActorId>§force_killed: Vec<ActorId>Implementations§
§impl ShutdownCoordinator
impl ShutdownCoordinator
pub fn new(config: ShutdownConfig) -> ShutdownCoordinator
pub fn new(config: ShutdownConfig) -> ShutdownCoordinator
Create a new shutdown coordinator.
pub fn initiate(&mut self, supervisor: &ActorSupervisor) -> Vec<ActorId>
pub fn initiate(&mut self, supervisor: &ActorSupervisor) -> Vec<ActorId>
Initiate graceful shutdown.
Returns the ordered list of actors to drain.
pub fn mark_drained(&mut self, actor: ActorId)
pub fn mark_drained(&mut self, actor: ActorId)
Mark an actor as drained (finished processing in-flight messages).
pub fn is_timeout_expired(&self) -> bool
pub fn is_timeout_expired(&self) -> bool
Check if the drain timeout has expired.
pub fn tick(&mut self) -> (ShutdownPhase, Vec<ActorId>)
pub fn tick(&mut self) -> (ShutdownPhase, Vec<ActorId>)
Advance the shutdown state machine.
Returns the current phase and any actors that need force-killing.
pub fn phase(&self) -> ShutdownPhase
pub fn phase(&self) -> ShutdownPhase
Current shutdown phase.
pub fn report(&self) -> ShutdownReport
pub fn report(&self) -> ShutdownReport
Get shutdown report.
Auto Trait Implementations§
impl Freeze for ShutdownCoordinator
impl RefUnwindSafe for ShutdownCoordinator
impl Send for ShutdownCoordinator
impl Sync for ShutdownCoordinator
impl Unpin for ShutdownCoordinator
impl UnwindSafe for ShutdownCoordinator
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
§fn deserialize(
&self,
deserializer: &mut D,
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut D, ) -> Result<With<T, W>, <D as Fallible>::Error>
Deserializes using the given deserializer
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.