use siafu::{JobBuilder, Scheduler};
use std::time::Duration;
use siafu::utils::time::ScheduleTime;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut scheduler = Scheduler::new();
let once_job = JobBuilder::new("once-job")
.once(ScheduleTime::Delay(Duration::from_secs(5)))
.add_handler(|| {
println!("One-time job executed!");
})
.build();
println!("Adding one-time job...");
scheduler.add_job(once_job)?;
let cron_job = JobBuilder::new("cron-job")
.cron("0 * * * * * *")
.add_handler(|| {
println!("Cron job executed!");
})
.build();
println!("Adding cron job...");
scheduler.add_job(cron_job)?;
let random_job = JobBuilder::new("random-job")
.random(ScheduleTime::Delay(Duration::from_secs(5)), ScheduleTime::Delay(Duration::from_secs(15)))
.add_handler(|| {
println!("Random time job executed!");
})
.build();
println!("Adding random time job...");
scheduler.add_job(random_job)?;
println!("Running scheduler...");
scheduler.run_non_blocking()?;
Ok(())
}