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: ShutdownPhaseCurrent phase.
config: ShutdownConfigConfiguration.
started_at: Option<Instant>When shutdown was initiated.
draining_actors: Vec<ActorId>Actors that have been told to drain.
drained_actors: Vec<ActorId>Actors that have confirmed drain complete.
force_killed: Vec<ActorId>Actors that were force-killed.
Implementations§
Source§impl ShutdownCoordinator
impl ShutdownCoordinator
Sourcepub fn new(config: ShutdownConfig) -> Self
pub fn new(config: ShutdownConfig) -> Self
Create a new shutdown coordinator.
Sourcepub 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.
Sourcepub 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).
Sourcepub fn is_timeout_expired(&self) -> bool
pub fn is_timeout_expired(&self) -> bool
Check if the drain timeout has expired.
Sourcepub 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.
Sourcepub fn phase(&self) -> ShutdownPhase
pub fn phase(&self) -> ShutdownPhase
Current shutdown phase.
Sourcepub fn report(&self) -> ShutdownReport
pub fn report(&self) -> ShutdownReport
Get shutdown report.
Sourcefn compute_shutdown_order(&self, supervisor: &ActorSupervisor) -> Vec<ActorId>
fn compute_shutdown_order(&self, supervisor: &ActorSupervisor) -> Vec<ActorId>
Compute the shutdown order based on the configured strategy.
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>
§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.