2个稳定版本
使用旧的Rust 2015
1.2.2 | 2024年1月26日 |
---|
#328 in 日期和时间
13KB
109 行
不再维护
我为这个crate创建的项目不再使用,所以我并没有真正有时间来保持库的更新。如果您需要这个项目提供的功能,建议您查看其他选项。
JobScheduler
一个简单的类似cron的Rust任务调度库。
用法
有关更多详细信息,请参阅文档。
请确保将 job_scheduler crate 添加到您的 Cargo.toml
[dependencies]
job_scheduler = "*"
使用cron库的 Schedule
类型的 FromStr
实现来创建任务调度。
调度格式如下
sec min hour day of month month day of week year
* * * * * * *
时间指定为 UTC
而不是您的本地时区。注意年份可能被省略。
逗号分隔的值,如 5,8,10
代表多个时间值。例如,调度 0 2,14,26 * * * *
将在每小时的第2分钟、第14分钟和第26分钟执行。
可以使用破折号指定范围。调度 0 0 * 5-10 * *
将每小时执行一次,但仅在每月的第5天到第10天执行。
星期可以指定为缩写或完整名称。一个表示为 0 0 6 * * Sun,Sat
的计划将在星期日和星期六的早上6点执行。
简单用法示例
extern crate job_scheduler;
use job_scheduler::{JobScheduler, Job};
use std::time::Duration;
fn main() {
let mut sched = JobScheduler::new();
sched.add(Job::new("1/10 * * * * *".parse().unwrap(), || {
println!("I get executed every 10 seconds!");
}));
loop {
sched.tick();
std::thread::sleep(Duration::from_millis(500));
}
}
类似库
- cron 我们使用的cron表达式解析器。
- schedule-rs 是一个类似的Rust库,它实现了自己的cron表达式解析器。
许可证
JobScheduler遵守以下任一许可证:
- Apache许可证,版本2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
贡献
除非你明确表示,否则你提交的任何有意包含在工作中的贡献,根据Apache-2.0许可证定义,将按照上述方式双重许可,不附加任何额外条款或条件。
请参阅CONTRIBUTING 文件以获取更多信息。
依赖项
~2.3–8.5MB
~56K SLoC