3 个稳定版本

1.0.2 2024年4月28日
0.3.1 2024年4月26日
0.2.0 2024年4月22日
0.1.0 2024年4月22日

#158 in 日期和时间

Download history 376/week @ 2024-04-25 35/week @ 2024-05-02 1/week @ 2024-05-16 2/week @ 2024-05-23 2/week @ 2024-05-30

每月 151 次下载

MIT 许可证

12KB
202

Scheduled

Scheduled 箱子提供用于在 Rust 应用程序中管理计划事件的功能。这是一个事件队列的简单实现,旨在用于任何自动化应用程序。

特性

此调度器使用 chronos 时间系统来指定日期和时间,因此最好与它们的类型一起使用。

  • 计划事件在特定日期或经过一定时间后发生。
  • 管理事件队列,在它们的激活时间到达时执行它们。
  • 使用 EventFunc 类型自定义事件函数。

示例

use scheduled::{Scheduler, EventFunc};
use chrono::{Utc, Duration};

fn main() {
    // Create a scheduler
    let mut scheduler = Scheduler::new();

    // Schedule an event to occur at a specific date
    let end_date = Utc::now() + Duration::seconds(4);
    let event_func: EventFunc = Box::new(|time| println!("Event executed at {}", time));
    scheduler.schedule_date(end_date, event_func);

    // Schedule another event to occur after a certain duration from the current time
    let wait_duration = Duration::seconds(5);
    let event_func: EventFunc = Box::new(|time| println!("Another event executed at {}", time));
    scheduler.schedule_wait_from_now(wait_duration, event_func);

    loop {
        if scheduler.check() {
            // Print the count of remaining events in the scheduler
            println!("Remaining events in scheduler: {}", scheduler.get_event_count());
        } else {
            if scheduler.is_empty() {
                break;
            };
        };
    }

    println!("Done executing events");
}

结构体

调度器

该结构体负责管理您拥有的事件以及添加和执行它们。

事件

事件的内部表示。它是一对执行函数和日期时间。

依赖项

~1.2–2MB
~35K SLoC