use flashq::FlashQ;
#[tokio::main]
async fn main() -> flashq::Result<()> {
let client = FlashQ::new();
client.connect().await?;
client.set_concurrency("concurrency-demo", 3).await?;
println!("Set concurrency limit: 3 concurrent jobs");
for i in 0..10 {
client
.push("concurrency-demo", serde_json::json!({"task": i}), None)
.await?;
}
println!("Pushed 10 jobs");
let counts = client.get_job_counts("concurrency-demo").await?;
println!(
"Counts: waiting={}, active={}, delayed={}",
counts.waiting, counts.active, counts.delayed
);
client.clear_concurrency("concurrency-demo").await?;
println!("Concurrency limit cleared");
client.close().await?;
Ok(())
}