Crate cron_clock[][src]

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

Structs

The time zone with fixed offset, from UTC-23:59:59 to UTC+23:59:59.

The local timescale. This is implemented via the standard time crate.

Metadata for cron-expression parsing.

Schedule-DateTime iterator for cron-expressions.

Schedule-DateTime iterator for cron-expressions(Ownership data, which does not have a lifetime, can be used anywhere).

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

Methods exposing a schedule’s configured ordinals for each individual unit of time.

The time zone.