mirror of
https://github.com/Lumither/nocturne.git
synced 2026-10-17 10:26:21 +00:00
feat(backend) scheduler rewrite (deadlock for now)
This commit is contained in:
8 files changed
+267
-139
No files matched your search
@@ -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,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());
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user