Crate cron_exp[−][src]
Schedule
Is a CRON expression parser and explorer.
It Supports both Crantab and Vixie CRON. If 5 arguments are provided Crantab is assumed, otherwise Vixie CRON.
The following Syntax is supported:
- * any value
- , value list
- - range values
- / step values
use chrono::{DateTime, TimeZone, Utc}; use cron_exp::Schedule; 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(); let mut last: Option<DateTime<Utc>> = None; let from_date = Utc.ymd(2022, 6, 1).and_hms(8, 40, 1); println!("Upcoming fire times:"); for datetime in schedule.iter_from(&from_date).take(10) { last = Some(datetime); println!("next -> {:?}", datetime); } println!("Previous fire times:"); for datetime in schedule.iter_from(&last.unwrap()).rev().take(40) { println!("prev -> {:?}", datetime); } /* Upcoming fire times: next -> 2022-06-01T09:30:00Z next -> 2022-06-01T12:30:00Z next -> 2022-06-01T15:30:00Z next -> 2022-06-15T09:30:00Z next -> 2022-06-15T12:30:00Z next -> 2022-06-15T15:30:00Z next -> 2022-07-01T09:30:00Z next -> 2022-07-01T12:30:00Z next -> 2022-07-01T15:30:00Z next -> 2022-07-15T09:30:00Z Previous fire times: prev -> 2022-07-01T15:30:00Z prev -> 2022-07-01T12:30:00Z prev -> 2022-07-01T09:30:00Z prev -> 2022-06-15T15:30:00Z prev -> 2022-06-15T12:30:00Z prev -> 2022-06-15T09:30:00Z prev -> 2022-06-01T15:30:00Z prev -> 2022-06-01T12:30:00Z prev -> 2022-06-01T09:30:00Z prev -> 2020-07-15T15:30:00Z */
Structs
Schedule | Represents a parsed CRON schedule. It is designed for space efficiency for caching and storage purposes such as in a CRON Scheduler. |
Enums
ParseScheduleError |