#cron #job #periodic

schedule

An in-process scheduler for periodic jobs. Schedule lets you run Rust functions on a cron-like schedule.

1 unstable release

Uses old Rust 2015

0.1.0 Feb 1, 2017

#14 in #periodic

Download history 28/week @ 2023-10-26 22/week @ 2023-11-02 26/week @ 2023-11-09 21/week @ 2023-11-16 26/week @ 2023-11-23 19/week @ 2023-11-30 30/week @ 2023-12-07 25/week @ 2023-12-14 37/week @ 2023-12-21 23/week @ 2023-12-28 22/week @ 2024-01-04 28/week @ 2024-01-11 27/week @ 2024-01-18 18/week @ 2024-01-25 15/week @ 2024-02-01 24/week @ 2024-02-08

87 downloads per month
Used in 2 crates

MIT/Apache

12KB
253 lines

schedule-rs

An in-process scheduler for periodic jobs. Schedule lets you run Rust functions on a cron-like schedule.

Install

[dependencies]
schedule = "0.1"

Usage

extern crate schedule;
extern crate chrono;

use schedule::{Agenda, Job};
use chrono::UTC;

fn main() {
    let mut a = Agenda::new();

    // Run every second
    a.add(Job::new(|| {
        println!("at second     :: {}", UTC::now());
    }, "* * * * * *".parse().unwrap()));

    // Run every minute
    a.add(Job::new(|| {
        println!("at minute     :: {}", UTC::now());
    }, "* * * * *".parse().unwrap()));

    // Run every hour
    a.add(Job::new(|| {
        println!("at hour       :: {}", UTC::now());
    }, "0 * * * *".parse().unwrap()));

    // Check and run pending jobs in agenda every 500 milliseconds
    loop {
        a.run_pending();

        std::thread::sleep(std::time::Duration::from_millis(500));
    }
}

License

config-rs is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT for details.

Dependencies

~3MB
~48K SLoC