scron

Crates.ioscron
lib.rsscron
version1.0.1
sourcesrc
created_at2017-12-04 13:39:51.10566
updated_at2019-04-03 15:33:39.763345
descriptionA cron expression parser and schedule explorer.
homepage
repository
max_upload_size
id41687
size49,873
(gladmo)

documentation

https://docs.rs/scron

README

Scron

A Scron Expression Parser in Rust

Fork from github.com/zslayton/cron

Usage

extern crate scron;
use scron::Task;
use scron::Tasks;
use std::{thread,time};
use std::thread::sleep;


fn main() {
    thread::spawn(move || {
        let task = Task::new("gen data".to_owned(), "* 13 23 * * *", || {
            one_task();
        });

        one_task();

        let mut tasks: Tasks = Tasks { task: vec![task] };
        tasks.run();
    });

    loop {
        sleep(time::Duration::from_millis(100))
    }
}

fn one_task() {
    println!("hohoho");
}

scron

extern crate scron;
extern crate chrono;

use scron::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  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
*/
Commit count: 0

cargo fmt