3 个稳定版本
1.0.2 | 2024年4月28日 |
---|---|
0.3.1 |
|
0.2.0 |
|
0.1.0 |
|
#158 in 日期和时间
每月 151 次下载
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