#cron #schedule #repeat #blockchain #near

cron_schedule

A cron expression parser, adapted for blockchain environments

7 releases

new 0.3.1 Sep 26, 2023
0.3.0 Sep 25, 2023
0.2.3 Nov 29, 2022
0.2.2 Sep 15, 2022
0.1.0 Apr 16, 2021

#2066 in Magic Beans

Download history 219/week @ 2023-06-07 323/week @ 2023-06-14 165/week @ 2023-06-21 108/week @ 2023-06-28 351/week @ 2023-07-05 85/week @ 2023-07-12 220/week @ 2023-07-19 321/week @ 2023-07-26 111/week @ 2023-08-02 199/week @ 2023-08-09 219/week @ 2023-08-16 411/week @ 2023-08-23 736/week @ 2023-08-30 279/week @ 2023-09-06 42/week @ 2023-09-13 203/week @ 2023-09-20

1,334 downloads per month
Used in 9 crates (2 directly)

MIT license

72KB
2K SLoC

cron_schedule

A cron expression parser, adapted for blockchain environments..

extern crate cron_schedule;
extern crate chrono;

use cron_schedule::Schedule;
use chrono::Utc;
use std::str::FromStr;

fn main() {
  //               sec  min   hour   day of month   month   day of week   year
  let expression = "0   30   9,12,15     1,15       May-Aug  Mon,Wed,Fri  2021/2";
  let schedule = Schedule::from_str(expression).unwrap();
  println!("Upcoming fire times:");
  for datetime in schedule.upcoming().take(10) {
    println!("-> {}", datetime);
  }
}

/*
Upcoming fire times:
-> 2021-06-01 09:30:00 UTC
-> 2021-06-01 12:30:00 UTC
-> 2021-06-01 15:30:00 UTC
-> 2021-06-15 09:30:00 UTC
-> 2021-06-15 12:30:00 UTC
-> 2021-06-15 15:30:00 UTC
-> 2021-08-01 09:30:00 UTC
-> 2021-08-01 12:30:00 UTC
-> 2021-08-01 15:30:00 UTC
-> 2021-08-15 09:30:00 UTC
*/

License

MIT license (LICENSE or http://opensource.org/licenses/MIT)

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~2–33MB
~466K SLoC