Skip to main content

DistributedLock

Trait DistributedLock 

Source
pub trait DistributedLock: Send + Sync {
    // Required methods
    async fn lock(&self) -> Result<(), LockError>;
    async fn try_lock(&self) -> Result<bool, LockError>;
    async fn unlock(&self) -> Result<(), LockError>;
    async fn lock_with_timeout(
        &self,
        timeout: Duration,
    ) -> Result<(), LockError>;
    fn key(&self) -> &str;
    async fn is_locked(&self) -> bool;
}
Expand description

分布式锁 trait (dyn 兼容)

Required Methods§

Source

async fn lock(&self) -> Result<(), LockError>

获取锁 (阻塞直到获取成功或超时)

Source

async fn try_lock(&self) -> Result<bool, LockError>

尝试获取锁 (非阻塞)

Source

async fn unlock(&self) -> Result<(), LockError>

释放锁

Source

async fn lock_with_timeout(&self, timeout: Duration) -> Result<(), LockError>

带超时的获取锁

Source

fn key(&self) -> &str

获取锁的键名

Source

async fn is_locked(&self) -> bool

检查锁是否被持有

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§