use flashq::FlashQ;
#[tokio::main]
async fn main() -> flashq::Result<()> {
let client = FlashQ::new();
client.connect().await?;
for i in 0..5 {
client
.push("control-demo", serde_json::json!({"i": i}), None)
.await?;
}
println!("Pushed 5 jobs");
client.pause("control-demo").await?;
let paused = client.is_paused("control-demo").await?;
println!("Queue paused: {paused}");
client.resume("control-demo").await?;
let paused = client.is_paused("control-demo").await?;
println!("Queue paused after resume: {paused}");
let queues = client.list_queues().await?;
println!("\nAll queues:");
for q in &queues {
println!(
" {} - pending={} processing={} paused={}",
q.name, q.pending, q.processing, q.paused
);
}
let drained = client.drain("control-demo").await?;
println!("\nDrained {drained} jobs");
client
.push("control-demo", serde_json::json!({"temp": true}), None)
.await?;
client.obliterate("control-demo").await?;
println!("Queue obliterated");
client.close().await?;
Ok(())
}