use rslock::LockManager;
use std::time::Duration;
#[tokio::main]
async fn main() {
let uris = vec![
"redis://127.0.0.1:6380/",
"redis://127.0.0.1:6381/",
"redis://127.0.0.1:6382/",
];
let rl = LockManager::new(uris);
let lock = loop {
if let Ok(lock) = rl.lock("mutex", Duration::from_millis(1000)).await {
break lock;
}
};
println!("Lock acquired!");
if rl.extend(&lock, Duration::from_millis(1000)).await.is_ok() {
println!("Lock extended!");
} else {
println!("Failed to extend the lock.");
}
rl.unlock(&lock).await;
println!("Lock released!");
}