pub struct LivenessPing {
pub liveness_ping: u64,
pub silence_window_ms: u64,
}Expand description
Transport-level liveness ping, pushed by the server down the SAME stream a dispatch travels. It is answered by the worker SDK RUNTIME, never by action code: the fact it establishes is “the server can reach this worker’s dispatch path”, and only a frame that rides that exact path can establish it. An open stream sender is not an answering worker — the server can hold a perfectly healthy-looking channel to a wedged process indefinitely, which is the failure class this ping exists to detect.
Distinct from Heartbeat: Heartbeat travels worker-to-server and proves the worker PROCESS is alive; this pair travels server-to-worker-and-back and proves the server-to-worker LEG carries. Those are different facts, and only the second is a dispatch precondition.
Fields§
§liveness_ping: u64Monotonic ping sequence within this server’s probe, echoed verbatim on the answer so a stale or reordered answer cannot be mistaken for a fresh one.
silence_window_ms: u64How long the worker may hear NOTHING on this stream before it should treat the link as dead — this server’s operator-configured heartbeat window, carried on the wire so the worker never holds a second copy of it.
Trait Implementations§
Source§impl Clone for LivenessPing
impl Clone for LivenessPing
Source§fn clone(&self) -> LivenessPing
fn clone(&self) -> LivenessPing
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for LivenessPing
Source§impl Debug for LivenessPing
impl Debug for LivenessPing
Source§impl Default for LivenessPing
impl Default for LivenessPing
Source§impl<'de> Deserialize<'de> for LivenessPing
impl<'de> Deserialize<'de> for LivenessPing
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 LivenessPing
Source§impl Hash for LivenessPing
impl Hash for LivenessPing
Source§impl Message for LivenessPing
impl Message for LivenessPing
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.Source§impl PartialEq for LivenessPing
impl PartialEq for LivenessPing
Source§impl Serialize for LivenessPing
impl Serialize for LivenessPing
impl StructuralPartialEq for LivenessPing
Auto Trait Implementations§
impl Freeze for LivenessPing
impl RefUnwindSafe for LivenessPing
impl Send for LivenessPing
impl Sync for LivenessPing
impl Unpin for LivenessPing
impl UnsafeUnpin for LivenessPing
impl UnwindSafe for LivenessPing
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
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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<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> 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