diff --git a/src/main.rs b/src/main.rs index 2377915..8c1bf89 100644 --- a/src/main.rs +++ b/src/main.rs @@ -27,7 +27,7 @@ async fn rocket() -> _ { .await .unwrap(); - scheduled::schedule(&db).await; + scheduled::schedule(&db); let rocket = rocket::build().manage(db); diff --git a/src/scheduled/mod.rs b/src/scheduled/mod.rs index 60e9da0..381a546 100644 --- a/src/scheduled/mod.rs +++ b/src/scheduled/mod.rs @@ -6,18 +6,19 @@ use job_scheduler_ng::{Job, JobScheduler}; use rocket::tokio::{self, task}; use sqlx::SqlitePool; -pub async fn schedule(db: &SqlitePool) { +pub fn schedule(db: &SqlitePool) { let db = db.clone(); - waterlevel::update(&db).await.unwrap(); - tokio::task::spawn(async { + waterlevel::update(&db).await.unwrap(); + let mut sched = JobScheduler::new(); // Every hour sched.add(Job::new("0 0 * * * * *".parse().unwrap(), move || { let db_clone = db.clone(); - // Use block_in_place to run async code in the synchronous function + // Use block_in_place to run async code in the synchronous function; TODO: Make it + // nicer one's rust (stable) support async closures task::block_in_place(|| { tokio::runtime::Handle::current().block_on(async { waterlevel::update(&db_clone).await.unwrap();