3 个版本
0.1.2 | 2022 年 11 月 19 日 |
---|---|
0.1.1 | 2022 年 8 月 26 日 |
0.1.0 | 2022 年 8 月 26 日 |
34 在 #工作调度器
7KB
93 行
Tokio Simple Scheduler
我需要一个没有任何功能的非常基本的调度器,所以就有了这个。
use std::time::Duration;
use chrono::Utc;
use tokio_simple_scheduler::{Job, Scheduler};
#[tokio::main]
async fn main() {
let mut scheduler = Scheduler::default();
scheduler.add(
Job::new("every 2", "*/2 * * * * *", || {
Box::pin(async {
println!("{:?} - Every 2 seconds", Utc::now());
})
})
.unwrap(),
);
scheduler.add(
Job::new("every 4", "*/4 * * * * *", || {
Box::pin(async {
println!("{:?} - Every 4 seconds", Utc::now());
})
})
.unwrap(),
);
scheduler.add(
Job::new("every 5", "*/5 * * * * *", || {
Box::pin(async {
println!("{:?} - Every 5 seconds", Utc::now());
})
})
.unwrap(),
);
scheduler.add(
Job::new("every 10", "*/10 * * * * *", || {
Box::pin(async {
println!("{:?} - Every 10 seconds", Utc::now());
})
})
.unwrap(),
);
scheduler.add(
Job::new("every 30", "*/30 * * * * *", || {
Box::pin(async {
println!("this job");
tokio::time::sleep(Duration::from_secs(3)).await;
println!("takes a few");
tokio::time::sleep(Duration::from_secs(3)).await;
println!("seconds to run");
})
})
.unwrap(),
);
scheduler.start().await;
}
它不做其他任何事情。
依赖关系
~4–11MB
~110K SLoC