pub struct LeaderElection { /* private fields */ }Expand description
Leader election using PostgreSQL advisory locks.
Implementations§
Source§impl LeaderElection
impl LeaderElection
Sourcepub fn new(
pool: PgPool,
node_id: NodeId,
role: LeaderRole,
config: LeaderConfig,
) -> Self
pub fn new( pool: PgPool, node_id: NodeId, role: LeaderRole, config: LeaderConfig, ) -> Self
Create a new leader election instance.
Sourcepub fn shutdown_receiver(&self) -> Receiver<bool>
pub fn shutdown_receiver(&self) -> Receiver<bool>
Get a shutdown receiver.
Sourcepub async fn try_become_leader(&self) -> Result<bool>
pub async fn try_become_leader(&self) -> Result<bool>
Try to acquire leadership.
Sourcepub async fn refresh_lease(&self) -> Result<()>
pub async fn refresh_lease(&self) -> Result<()>
Refresh the leadership lease.
Sourcepub async fn release_leadership(&self) -> Result<()>
pub async fn release_leadership(&self) -> Result<()>
Release leadership.
Sourcepub async fn check_leader_health(&self) -> Result<bool>
pub async fn check_leader_health(&self) -> Result<bool>
Check if the current leader is healthy.
Sourcepub async fn get_leader(&self) -> Result<Option<LeaderInfo>>
pub async fn get_leader(&self) -> Result<Option<LeaderInfo>>
Get current leader info.
Auto Trait Implementations§
impl Freeze for LeaderElection
impl !RefUnwindSafe for LeaderElection
impl Send for LeaderElection
impl Sync for LeaderElection
impl Unpin for LeaderElection
impl !UnwindSafe for LeaderElection
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
Mutably borrows from an owned value. Read more
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> 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