3个版本
0.1.2 | 2024年5月25日 |
---|---|
0.1.1 | 2024年5月19日 |
0.1.0 | 2024年5月18日 |
506 在 异步
19KB
376 行
sched-callback
在特定点执行异步回调的调度器。
概述
- 在tokio运行时上工作。
- 轻量级调度器,每个任务队列中只执行一个任务。
用法
使用queue::SchedQueue
创建调度器
let sq = SchedQueue::new();
回调类型
type Callback = Box<dyn Fn() -> Pin<Box<dyn Future<Output = ()> + Send + 'static>> + Send + 'static>;
添加带有回调的任务。任务添加后1秒触发回调,回调触发后重新调度10次。
sq.add(Task::new(SchedType::Delay(Duration::from_secs(1), 10), Box::new(move || {
Box::pin(async move {
println!("hello world");
})
}))).await;
可以添加两种类型的任务到队列。 SchedType::Timestamp(SystemTime)
指定回调触发的确切时间戳。 SchedType::Delay(Duration, usize)
指定任务添加后回调将被触发的时间和将重新调度多少次。
依赖关系
~2.3–4MB
~65K SLoC