#回调 #调度器 #异步 #任务队列

sched-callback

Rust异步回调调度库

3个版本

0.1.2 2024年5月25日
0.1.1 2024年5月19日
0.1.0 2024年5月18日

506异步

MIT 许可证

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