main/
main.rs

1use std::time::Duration;
2
3use anyhow::Result;
4use easycron::*;
5use tokio::time::sleep;
6
7#[tokio::main]
8async fn main() -> Result<()> {
9    // 构建一个Cron调度器实例,开启调试模式
10    let mut crond = CronBuilder::default().debug(true).build().unwrap();
11    // 启动Cron调度器
12    crond.run().await;
13
14    // 创建第1个任务,每秒触发一次,执行一个简单的打印操作
15    let j1 = Job::new("test", "* * * * * *", || println!("test"))?;
16    crond.add(j1).await;
17
18    // 创建第2个任务
19    sleep(Duration::from_secs(3)).await;
20    let j2 = Job::new("test2", "* * * * * *", || println!("test2"))?;
21    crond.add(j2.clone()).await;
22
23    // 移除第2个任务
24    sleep(Duration::from_secs(3)).await;
25    crond.remove(j2.id).await;
26
27    // 按下第1次Ctrl+C停止调度器
28    tokio::signal::ctrl_c().await?;
29    crond.stop();
30
31    // 按下第2次Ctrl+C信号退出进程
32    tokio::signal::ctrl_c().await?;
33    Ok(())
34}