Crate cron_clock

Source
Expand description

A cron expression parser and schedule explorer.

In addition to the regular expressions, you can also use the following shortcut expressions with Schedule::from_str, such as @yearly @monthly @weekly @daily @hourly @minutely @secondly, make cron- Expression Iterator.

§Tips

If you need a periodicized task manager, you may need delay-timer (Time-manager of delayed tasks. Like crontab, but synchronous [asynchronous] tasks are possible, and dynamic add/cancel/remove is supported) .

§Example

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

  //               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  2018/2";
  let schedule = Schedule::from_str(expression).unwrap();
  println!("Upcoming fire times:");
  for datetime in schedule.upcoming(Utc).take(10) {
    println!("-> {}", datetime);
  }

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

§Example shortcut expressions & ScheduleIteratorOwned

extern crate chrono;
extern crate cron_clock;

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

fn main() {
  // shortcut expressions
  let expression = "@hourly";
  let schedule = Schedule::from_str(expression).unwrap();
  println!("Upcoming fire times:");
  // `upcoming_owned` Get iterators with ownership, so you don't have lifetime to worry about.
  for datetime in schedule.upcoming_owned(Utc).take(10) {
    println!("-> {}", datetime);
  }
}

Modules§

error

Structs§

FixedOffset
The time zone with fixed offset, from UTC-23:59:59 to UTC+23:59:59.
Local
The local timescale.
Schedule
Metadata for cron-expression parsing.
ScheduleIterator
Schedule-DateTime iterator for cron-expressions.
ScheduleIteratorOwned
Schedule-DateTime iterator for cron-expressions(Ownership data, which does not have a lifetime, can be used anywhere).
Utc
The UTC time zone. This is the most efficient time zone when you don’t need the local time. It is also used as an offset (which is also a dummy type).

Traits§

TimeUnitSpec
Methods exposing a schedule’s configured ordinals for each individual unit of time.
TimeZone
The time zone.