This commit is contained in:
2026-05-16 17:57:54 +02:00
parent 1a2ec26f27
commit b2cefb7d66
55 changed files with 1654 additions and 334 deletions
+13 -1
View File
@@ -3,12 +3,14 @@ pub mod state;
use crate::config::AppConfig;
use crate::database::Database;
use crate::http::server::HttpServer;
use crate::metrics::{reporter, AppMetrics};
use crate::repositories::Repositories;
use crate::udp::server::UdpServer;
use event_bus::EventBus;
use migration::{Migrator, MigratorTrait};
pub use state::AppState;
use std::sync::Arc;
use std::time::Duration;
use uuid::Uuid;
pub struct App {
@@ -58,12 +60,15 @@ impl App {
None
};
let metrics = AppMetrics::new();
let state = AppState {
db,
config: Arc::new(config),
repositories,
init_token,
default_server: Arc::new(default_server),
metrics,
};
Ok(Self { state })
@@ -78,7 +83,14 @@ impl App {
let (http_server, http_shutdown_tx) = HttpServer::new(&config.network, self.state.clone());
// Initialize UDP service
let (udp_server, udp_shutdown_tx) = UdpServer::new(&config.network);
let udp_metrics = Arc::clone(&self.state.metrics.udp);
let (udp_server, udp_shutdown_tx) = UdpServer::new(&config.network, udp_metrics);
// Lance le reporter central de métriques toutes les 30 secondes
reporter::spawn_reporter(
Arc::new(self.state.metrics.clone()),
Duration::from_secs(30),
);
// On lance les serveurs dans des tâches séparées
let mut http_handle = tokio::spawn(http_server.run());
+2
View File
@@ -1,4 +1,5 @@
use crate::config::AppConfig;
use crate::metrics::AppMetrics;
use crate::models::server;
use crate::repositories::Repositories;
use sea_orm::DatabaseConnection;
@@ -11,6 +12,7 @@ pub struct AppState {
pub repositories: Repositories,
pub init_token: Option<uuid::Uuid>,
pub default_server: Arc<server::Model>,
pub metrics: AppMetrics,
}
impl AppState {}