pub struct OutcomeRecord {
pub pid: u32,
pub outcome: ShutdownOutcome,
pub drain_timeout_seconds: u64,
pub delivered_drain_requests: usize,
pub parked: Vec<ParkedWorkerRecord>,
pub parked_declared_commands: Vec<String>,
pub managed_workers_stopped: Vec<String>,
pub managed_workers_unstopped: Vec<String>,
}Expand description
The durable record of one shutdown’s drain outcome.
Fields§
§pid: u32Pid of the server that wrote the record, tying it to an ARMED bracket.
outcome: ShutdownOutcomeWhich face the drain ended on.
drain_timeout_seconds: u64The drain window that governed the wait, in seconds.
delivered_drain_requests: usizeHow many connected workers received the drain request.
parked: Vec<ParkedWorkerRecord>Parked in-flight work, by worker and task name. Empty on a clean drain.
parked_declared_commands: Vec<String>Declared-body commands still executing when the drain ended, as
workflow/activity#attempt names: server-run commands no worker holds,
ended with the server and re-dispatched by the next boot’s replay.
Defaulted on read because records written before the declared census
existed — the death note is shared with older builds — carry no field,
and their honest reading is “none named”, not a parse refusal.
managed_workers_stopped: Vec<String>Managed workers proven stopped (process group empty) at shutdown.
managed_workers_unstopped: Vec<String>Managed workers that could NOT be proven stopped, by name — never summed into a count that could read as calm.
Implementations§
Source§impl OutcomeRecord
impl OutcomeRecord
Sourcepub fn from_report(pid: u32, report: &ShutdownReport) -> Self
pub fn from_report(pid: u32, report: &ShutdownReport) -> Self
Build the record from what the drain observed, named where the
observation was made: workers by registry id, parked tasks as
workflow/activity#attempt.
Trait Implementations§
Source§impl Clone for OutcomeRecord
impl Clone for OutcomeRecord
Source§fn clone(&self) -> OutcomeRecord
fn clone(&self) -> OutcomeRecord
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for OutcomeRecord
impl Debug for OutcomeRecord
Source§impl<'de> Deserialize<'de> for OutcomeRecord
impl<'de> Deserialize<'de> for OutcomeRecord
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for OutcomeRecord
Source§impl PartialEq for OutcomeRecord
impl PartialEq for OutcomeRecord
Source§impl Serialize for OutcomeRecord
impl Serialize for OutcomeRecord
impl StructuralPartialEq for OutcomeRecord
Auto Trait Implementations§
impl Freeze for OutcomeRecord
impl RefUnwindSafe for OutcomeRecord
impl Send for OutcomeRecord
impl Sync for OutcomeRecord
impl Unpin for OutcomeRecord
impl UnsafeUnpin for OutcomeRecord
impl UnwindSafe for OutcomeRecord
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<M> EmbeddedConversationMessage for Mwhere
M: Serialize,
impl<M> EmbeddedConversationMessage for Mwhere
M: Serialize,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> IntoMaybeUndefined<T> for T
impl<T> IntoMaybeUndefined<T> for T
Source§fn into_maybe_undefined(self) -> MaybeUndefined<T>
fn into_maybe_undefined(self) -> MaybeUndefined<T>
Source§impl<T> IntoOption<T> for T
impl<T> IntoOption<T> for T
Source§fn into_option(self) -> Option<T>
fn into_option(self) -> Option<T>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request