Fix scheduler

This commit is contained in:
2022-10-01 17:42:32 +06:00
parent bb60a672fc
commit 82913a4752
2 changed files with 16 additions and 16 deletions

View File

@@ -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()
];
}

View File

@@ -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<dyn std::error::Error>> {
Ok(())
}
pub async fn cron_jobs() -> Result<tokio::task::JoinHandle<()>, 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<tokio::task::JoinHandle<()>, 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
}