feat(backend) scheduler rewrite (deadlock for now)

This commit is contained in:
lumither committed 2025-03-05 13:52:07 -08:00
1 parent 0c6325d5f2
commit 5e8b1ff35d
8 files changed
+267 -139

No files matched your search

+6 -3
View File
@@ -3,7 +3,6 @@ mod cron;
use crate::{
modules::{
Module,
blog::{
api::{
get_page_count,
@@ -12,11 +11,12 @@ use crate::{
},
// cron::check_update,
},
Module,
},
scheduler::tasks::CronTask,
scheduler::tasks::{async_basic::AsyncBasic, CronTask},
};
use axum::{Router, routing::get};
use axum::{routing::get, Router};
use sqlx::PgPool;
const MOUNT_POINT: &str = "/blog";
@@ -47,6 +47,9 @@ impl Module for Blog {
// BasicTask::new(move || check_update::task(&db_handler), "0/15 * * * * *")
// .unwrap()
// .to_task(),
AsyncBasic::new(|| Box::pin(async { println!("test") }), "* * * * * *")
.unwrap()
.to_task(),
]
}
}
+5 -8
View File
@@ -5,11 +5,12 @@ use std::num::ParseIntError;
use crate::{
constants::config::server::{default_value, var_name},
scheduler::{Scheduler, tasks::CronTask},
scheduler::{tasks::CronTask, Scheduler},
};
use macros::error_panic;
use axum::Router;
use tokio::net::TcpListener;
use tracing::{info, warn};
// todo: merge `get_server_router` & `get_mount_point`, make Option
@@ -51,13 +52,7 @@ impl ModuleTree {
Err(_) => default_value::PORT,
};
let listener = match tokio::net::TcpListener::bind(format!(
"{}:{}",
default_value::HOST,
port
))
.await
{
let listener = match TcpListener::bind(format!("{}:{}", default_value::HOST, port)).await {
Ok(listener) => {
info!("server started on {}:{}", default_value::HOST, port);
listener
@@ -77,6 +72,8 @@ impl ModuleTree {
app = app.nest(module.get_mount_point(), module.get_server_router());
}
scheduler.start().unwrap();
axum::serve(listener, app).await.unwrap_or_else(|e| {
error_panic!("failed to start axum: {}", e.to_string());
});