use flashq::{CronOptions, FlashQ};
#[tokio::main]
async fn main() -> flashq::Result<()> {
let client = FlashQ::new();
client.connect().await?;
client
.add_cron(
"cleanup-job",
CronOptions {
queue: "maintenance".to_string(),
data: serde_json::json!({"action": "cleanup-temp-files"}),
schedule: Some("*/10 * * * * *".to_string()), limit: Some(5), ..Default::default()
},
)
.await?;
println!("Added cron job: cleanup-job");
client
.add_cron(
"health-check",
CronOptions {
queue: "monitoring".to_string(),
data: serde_json::json!({"action": "health-check"}),
repeat_every: Some(30000), ..Default::default()
},
)
.await?;
println!("Added cron job: health-check");
let crons = client.list_crons().await?;
println!("\nActive cron jobs:");
for cron in &crons {
println!(
" {} -> queue={}, schedule={:?}, executions={}",
cron.name, cron.queue, cron.schedule, cron.executions
);
}
client.delete_cron("health-check").await?;
println!("\nDeleted health-check cron");
client.close().await?;
Ok(())
}