3个不稳定版本
0.3.0 | 2023年6月22日 |
---|---|
0.2.2 | 2023年1月10日 |
0.2.1 | 2023年1月10日 |
0.1.0 |
|
#17 在 #mongodb
13KB
230 行
在MongoDB中实现分布式互斥锁。
该库仅包含同步实现。如果您需要异步版本,请使用mongo-lock-async
库。
该实现依赖于系统时间。请确保您的服务器上NTP客户端配置正确。
安装
将此库添加到Cargo.toml
[dependencies]
mongo_lock = "0"
使用
fn main() {
let mongo = mongodb::sync::Client::with_uri_str("mongodb://127.0.0.1").unwrap();
// We need to ensure that mongodb collection has a proper index.
mongo_lock::prepare_database(&mongo).unwrap();
if let Ok(Some(lock)) =
mongo_lock::Lock::try_acquire(
&mongo,
"my-key",
std::time::Duration::from_secs(30)
)
{
println!("Lock acquired.");
// The lock will be released automatically after leaving the scope.
}
}
依赖
~24–35MB
~656K SLoC