Skip to main content

ServiceReadyNotifier

Struct ServiceReadyNotifier 

Source
pub struct ServiceReadyNotifier { /* private fields */ }
Expand description

A notification channel for signaling when a service has become ready.

Services can use this to notify other services that may depend on them that they have successfully started and are ready to serve requests.

§Example

use pingora_core::services::ServiceReadyNotifier;

async fn my_service(ready_notifier: ServiceReadyNotifier) {
    // Perform initialization...

    // Signal that the service is ready
    ready_notifier.notify_ready();

    // Continue with main service loop...
}

Implementations§

Source§

impl ServiceReadyNotifier

Source

pub fn new(sender: Sender<bool>) -> Self

Creates a new ServiceReadyNotifier from a watch sender. You will not need to create one of these for normal usage, but being able to is useful for testing.

Source

pub fn notify_ready(self)

Notifies dependent services that this service is ready.

Consumes the notifier to ensure ready is only signaled once.

Trait Implementations§

Source§

impl Drop for ServiceReadyNotifier

Source§

fn drop(&mut self)

In the event that the notifier is dropped before notifying that the service is ready, we opt to signal ready anyway

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more