A simple cron-like job scheduling library for Rust.
Forked from https://github.com/lholden/job_scheduler, thanks @lholden! This is a fork which i try to maintain and maybe even improve where needed.
- Validated uuid v1.3.0 works
- Used miri to check examples
std::process::exit(0);to produce a clean exit.
- Set MSRV to v1.56.1
- Updated dev dependency of tokio to v1.25.0 or higher
- Don't require Sync trait for job function (PR #1 - Thanks @mikel1703)
- Added two other examples. One using threading, and one also using MPSC.
- Added some clippy checks
- Fixed some spelling errors
- Updated cron to v0.12.0
- Set chrono v0.4.20 as minimum version to mitigate a know CVE.
Please see the Documentation for more details.
Be sure to add the job_scheduler_ng crate to your
 = "*"
Creating a schedule for a job is done using the
FromStr impl for the
Schedule type of the cron library.
The scheduling format is as follows:
sec min hour day of month month day of week year * * * * * * *
Time is specified for
UTC and not your local timezone. Note that the year may
Comma separated values such as
5,8,10 represent more than one time value. So
for example, a schedule of
0 2,14,26 * * * * would execute on the 2nd, 14th,
and 26th minute of every hour.
Ranges can be specified with a dash. A schedule of
0 0 * 5-10 * * would
execute once per hour but only on day 5 through 10 of the month.
Day of the week can be specified as an abbreviation or the full name. A
0 0 6 * * Sun,Sat would execute at 6am on Sunday and Saturday.
A simple usage example:
extern crate job_scheduler_ng; use ; use Duration;
- cron the cron expression parser we use.
- schedule-rs is a similar rust library that implements it's own cron expression parser.
JobScheduler is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Please see the CONTRIBUTING file for more information.