aboutsummaryrefslogtreecommitdiff
path: root/karld/src/schedule.rs
diff options
context:
space:
mode:
authormetamuffin <yvchraiqi@protonmail.com>2022-06-13 10:07:36 +0200
committermetamuffin <yvchraiqi@protonmail.com>2022-06-13 10:07:36 +0200
commit1441b718c9bbf8016f563cfc89f4ee322e4f42e4 (patch)
tree32d30f1a503d5582bcba421279a31b4356740db2 /karld/src/schedule.rs
parent163052cd25d927c9437a2234befd22c9d143c4d4 (diff)
downloadkarlender-1441b718c9bbf8016f563cfc89f4ee322e4f42e4.tar
karlender-1441b718c9bbf8016f563cfc89f4ee322e4f42e4.tar.bz2
karlender-1441b718c9bbf8016f563cfc89f4ee322e4f42e4.tar.zst
started dynamic schedule
Diffstat (limited to 'karld/src/schedule.rs')
-rw-r--r--karld/src/schedule.rs20
1 files changed, 19 insertions, 1 deletions
diff --git a/karld/src/schedule.rs b/karld/src/schedule.rs
index 1f3c479..0d0e783 100644
--- a/karld/src/schedule.rs
+++ b/karld/src/schedule.rs
@@ -1,5 +1,23 @@
+use chrono::NaiveDateTime;
+use karlcommon::{Schedule, Task};
+use crate::TASKS;
pub fn schedule_dynamic() {
-
+ let tasks = TASKS.write().unwrap();
+
+ let colliders = tasks.values().filter(|t| !t.schedule.is_dynamic());
+ let mut dynamic = tasks
+ .values()
+ .filter(|t| t.schedule.is_dynamic())
+ .collect::<Vec<_>>();
+
+ dynamic.sort_by_key(|t| {
+ if let Schedule::Dynamic { priority, .. } = t.schedule {
+ // TODO increase precision by using floats
+ (priority * 1000.0) as i64
+ } else {
+ 0
+ }
+ })
}