#任务调度 #cron #cron-job #任务 #调度器

job_scheduler

一个简单的类似cron的任务调度库,用于Rust

10个稳定版本

使用旧的Rust 2015

1.2.1 2020年4月1日
1.1.0 2019年10月26日
1.0.6 2018年11月7日
1.0.5 2018年8月24日
1.0.2 2017年3月4日

#259日期和时间

Download history 406/week @ 2023-12-14 433/week @ 2023-12-21 268/week @ 2023-12-28 407/week @ 2024-01-04 380/week @ 2024-01-11 535/week @ 2024-01-18 376/week @ 2024-01-25 363/week @ 2024-02-01 173/week @ 2024-02-08 284/week @ 2024-02-15 246/week @ 2024-02-22 272/week @ 2024-02-29 228/week @ 2024-03-07 201/week @ 2024-03-14 226/week @ 2024-03-21 286/week @ 2024-03-28

963 每月下载量
5 crates 中使用

MIT/Apache

12KB
109

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许可证定义,均应按照上述方式双授权,不附加任何额外条款或条件。

请参阅CONTRIBUTING 文件以获取更多信息。

依赖

~4.5-6MB
~109K SLoC