-
-
Notifications
You must be signed in to change notification settings - Fork 24
Expand file tree
/
Copy pathbasic.rs
More file actions
35 lines (29 loc) · 807 Bytes
/
Copy pathbasic.rs
File metadata and controls
35 lines (29 loc) · 807 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
use rslock::LockManager;
use std::time::Duration;
#[tokio::main]
async fn main() {
// Define Redis URIs
let uris = vec![
"redis://127.0.0.1:6380/",
"redis://127.0.0.1:6381/",
"redis://127.0.0.1:6382/",
];
// Initialize the LockManager using `new`
let rl = LockManager::new(uris);
// Acquire a lock
let lock = loop {
if let Ok(lock) = rl.lock("mutex", Duration::from_millis(1000)).await {
break lock;
}
};
println!("Lock acquired!");
// Extend the lock
if rl.extend(&lock, Duration::from_millis(1000)).await.is_ok() {
println!("Lock extended!");
} else {
println!("Failed to extend the lock.");
}
// Unlock the lock
rl.unlock(&lock).await;
println!("Lock released!");
}