pub struct LeaderLeaseManager { /* private fields */ }Expand description
Acquires and renews leadership while candidacy remains true.
Implementations§
Source§impl LeaderLeaseManager
impl LeaderLeaseManager
Sourcepub fn new(
store: Arc<LeaderLeaseStore>,
process_lease: &ProcessLease,
config: LeaderLeaseConfig,
) -> Result<Self, LeaseError>
pub fn new( store: Arc<LeaderLeaseStore>, process_lease: &ProcessLease, config: LeaderLeaseConfig, ) -> Result<Self, LeaseError>
Construct a manager bound to this boot’s acquired stable-node process lease.
§Errors
Rejects invalid ownership or inconsistent renewal timings.
Sourcepub fn owner(&self) -> &LeaderLeaseOwner
pub fn owner(&self) -> &LeaderLeaseOwner
Exact process incarnation this manager may publish.
Sourcepub fn lease_watch(&self) -> Receiver<Option<LeaderLease>>
pub fn lease_watch(&self) -> Receiver<Option<LeaderLease>>
Subscribe to the locally authorized leader record.
Sourcepub fn deadline(&self) -> Arc<LeaseDeadline> ⓘ
pub fn deadline(&self) -> Arc<LeaseDeadline> ⓘ
Shared local-monotonic liveness gate for leader hot paths.
Sourcepub fn spawn(
self,
shutdown: CancellationToken,
candidate: Receiver<LeaderCandidacy>,
) -> JoinHandle<()>
pub fn spawn( self, shutdown: CancellationToken, candidate: Receiver<LeaderCandidacy>, ) -> JoinHandle<()>
Spawn the renewal loop. Loss of candidacy withdraws the current local grant so this manager can contend again later. Shutdown, a missed renewal, or an invalid lease outcome terminally fences the manager.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for LeaderLeaseManager
impl !UnwindSafe for LeaderLeaseManager
impl Freeze for LeaderLeaseManager
impl Send for LeaderLeaseManager
impl Sync for LeaderLeaseManager
impl Unpin for LeaderLeaseManager
impl UnsafeUnpin for LeaderLeaseManager
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<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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].§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>
Returns the layout of the type.