7 个版本
0.2.0 | 2022年7月26日 |
---|---|
0.2.0-alpha5 | 2022年6月1日 |
0.2.0-alpha4 | 2022年5月31日 |
0.1.8 | 2022年3月18日 |
0.0.1 | 2022年3月8日 |
#1 in #cronos
在 2 个 crate(通过 cronos-scheduler)中使用
64KB
1.5K SLoC
cronos-cron
一个在 Solana 运行时中安全使用的 cron 表达式解析器。与稳定 Rust v1.28.0 兼容。
use cronos_cron::Schedule;
use chrono::{DateTime, NaiveDateTime, 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 2018/2";
let schedule = Schedule::from_str(expression).unwrap();
let ts = 1234567890;
let next_exec_at = schedule
.after(&DateTime::<Utc>::from_utc(
NaiveDateTime::from_timestamp(ts, 0),
Utc,
))
.take(1)
.next()
{
Some(datetime) => Some(datetime.timestamp()),
None => None,
}
}
/*
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
*/
依赖关系
~2.5MB
~38K SLoC