use log::info;
use simple_logger::SimpleLogger;
use tasklet::task::TaskStepStatusErr::Error;
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("1 * * * * * *")
.description("A simple task")
.add_step("Step 1", || {
info!("Hello from step 1");
Ok(Success) })
.add_step("Step 2", move || {
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;
}