use log::info;
use simple_logger::SimpleLogger;
use tasklet::task::TaskStepStatusErr::{Error, ErrorDelete};
use tasklet::task::TaskStepStatusOk::Success;
use tasklet::{TaskBuilder, TaskScheduler};
#[tokio::main]
async fn main() {
SimpleLogger::new().init().unwrap();
let mut exec_count = 0;
let mut scheduler = TaskScheduler::default(chrono::Local);
let _ = scheduler.add_task(
TaskBuilder::new(chrono::Local)
.every("0,5,10,15,20,25,30,35,40,45,50,55 * * * * * *")
.description("A simple task")
.add_step("Step 1", || {
info!("Hello from step 1");
Ok(Success) })
.add_step("Step 2", move || {
if exec_count == 10 {
info!("Force deleting!");
return Err(ErrorDelete);
}
if exec_count % 2 == 0 {
exec_count += 1;
Err(Error) } else {
info!("Hello from step 2");
exec_count += 1;
Ok(Success) }
})
.build(),
);
scheduler.run().await;
}