diff --git a/src/main.rs b/src/main.rs index 627c3e0..a5f301c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -39,10 +39,12 @@ async fn start_app() { let addr = SocketAddr::from(([0, 0, 0, 0], 8080)); + log::info!("Start webserver..."); axum::Server::bind(&addr) .serve(app.into_make_service()) .await .unwrap(); + log::info!("Webserver shutdown...") } #[tokio::main] @@ -50,12 +52,8 @@ async fn main() { let _guard = sentry::init(config::CONFIG.sentry_dsn.clone()); env_logger::init(); - tokio::spawn(async { - match cron_jobs().await { - Ok(v) => v.await, - Err(e) => panic!("{:?}", e), - } - }); - - start_app().await; + tokio::join![ + cron_jobs(), + start_app() + ]; } diff --git a/src/updater.rs b/src/updater.rs index f022e15..7fbc226 100644 --- a/src/updater.rs +++ b/src/updater.rs @@ -8,7 +8,7 @@ use deadpool_postgres::{Config, CreatePoolError, ManagerConfig, Pool, RecyclingM use futures::{io::copy, TryStreamExt}; use reqwest::header::{HeaderMap, HeaderValue, HeaderName}; use tokio::fs::{File, remove_file}; -use tokio_cron_scheduler::{JobScheduler, Job, JobSchedulerError}; +use tokio_cron_scheduler::{JobScheduler, Job}; use tokio_postgres::NoTls; use async_compression::futures::bufread::GzipDecoder; @@ -501,10 +501,10 @@ pub async fn update() -> Result<(), Box> { Ok(()) } -pub async fn cron_jobs() -> Result, JobSchedulerError> { +pub async fn cron_jobs() { let job_scheduler = JobScheduler::new().await.unwrap(); - let update_job = match Job::new_async("0 0 5 * * *", |_uuid, _l| Box::pin(async { + let update_job = match Job::new_async("0 0 2 * * *", |_uuid, _l| Box::pin(async { match update().await { Ok(_) => log::info!("Updated"), Err(err) => log::info!("Update err: {:?}", err), @@ -517,11 +517,13 @@ pub async fn cron_jobs() -> Result, JobSchedulerErro job_scheduler.add(update_job).await.unwrap(); log::info!("Scheduler start..."); - let result = match job_scheduler.start().await { - Ok(v) => Ok(v), - Err(err) => Err(err), + let join_handler = match job_scheduler.start().await { + Ok(v) => v, + Err(err) => panic!("{:?}", err), + }; + match join_handler.await { + Ok(_) => (), + Err(err) => panic!("{:?}", err), }; log::info!("Scheduler shutdown..."); - - result } \ No newline at end of file