so close tho
parent
2a04a030f7
commit
1639286189
|
|
@ -26,7 +26,10 @@ impl Task {
|
||||||
|
|
||||||
fn is_due_now(&self, now: TS) -> bool {
|
fn is_due_now(&self, now: TS) -> bool {
|
||||||
match self.when() {
|
match self.when() {
|
||||||
Some(when) => now.unix() <= when.next(self.ts()).unix(),
|
Some(when) => {
|
||||||
|
eprintln!("next: {}", when.next(self.ts()).to_string());
|
||||||
|
now.unix() <= when.next(self.ts()).unix()
|
||||||
|
},
|
||||||
None => true,
|
None => true,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -35,7 +38,10 @@ impl Task {
|
||||||
match self.get("schedule".to_string()) {
|
match self.get("schedule".to_string()) {
|
||||||
Some(v) => match When::new(v) {
|
Some(v) => match When::new(v) {
|
||||||
Ok(when) => Some(when),
|
Ok(when) => Some(when),
|
||||||
Err(_) => None,
|
Err(msg) => {
|
||||||
|
eprintln!("Task.when(): {}", msg);
|
||||||
|
return None;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
None => None,
|
None => None,
|
||||||
}
|
}
|
||||||
|
|
@ -55,9 +61,12 @@ impl Task {
|
||||||
match self.0.get(k) {
|
match self.0.get(k) {
|
||||||
Some(v) => Some(
|
Some(v) => Some(
|
||||||
serde_yaml::to_string(v)
|
serde_yaml::to_string(v)
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.trim()
|
.to_string()
|
||||||
.to_string()
|
.trim()
|
||||||
|
.trim_start_matches('\'')
|
||||||
|
.trim_end_matches( '\'')
|
||||||
|
.to_string()
|
||||||
),
|
),
|
||||||
None => None,
|
None => None,
|
||||||
}
|
}
|
||||||
|
|
@ -84,6 +93,17 @@ mod test_task {
|
||||||
Some("v".to_string()),
|
Some("v".to_string()),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn is_due() {
|
||||||
|
let mut t = Task::new();
|
||||||
|
assert!(t.is_due());
|
||||||
|
t.set("ts".to_string(), "61".to_string());
|
||||||
|
t.set("schedule".to_string(), "* * * * *".to_string());
|
||||||
|
assert!(!t.is_due_now(TS::from_unix(119)));
|
||||||
|
assert!(t.is_due_now(TS::from_unix(120)));
|
||||||
|
assert!(t.is_due_now(TS::from_unix(121)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
|
|
@ -103,7 +123,7 @@ impl When {
|
||||||
Some(x) => { return Ok(x); },
|
Some(x) => { return Ok(x); },
|
||||||
None => {},
|
None => {},
|
||||||
};
|
};
|
||||||
Err(format!("cannot parse when {}", src))
|
Err(format!("cannot parse when: {}", src))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn new_duration(src: String) -> Option<When> {
|
fn new_duration(src: String) -> Option<When> {
|
||||||
|
|
@ -228,6 +248,10 @@ mod test_cron {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn parse() {
|
fn parse() {
|
||||||
|
match Cron::new("* * * * *".to_string()) {
|
||||||
|
Ok(c) => {}
|
||||||
|
Err(err) => assert!(false, "failed to parse cron: {}", err),
|
||||||
|
};
|
||||||
match Cron::new("1 * * * *".to_string()) {
|
match Cron::new("1 * * * *".to_string()) {
|
||||||
Ok(c) => assert_eq!(1714525200+60, c.next(TS::from_unix(1714525200)).unix()),
|
Ok(c) => assert_eq!(1714525200+60, c.next(TS::from_unix(1714525200)).unix()),
|
||||||
Err(err) => assert!(false, "failed to parse cron: {}", err),
|
Err(err) => assert!(false, "failed to parse cron: {}", err),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue