#cron #job-scheduler #job-scheduling #job #scheduler #jobs

wei-job-scheduler

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

2个稳定版本

使用旧的Rust 2015

1.2.2 2024年1月26日

#328 in 日期和时间

MIT/Apache

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

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

依赖项

~2.3–8.5MB
~56K SLoC