refactor: extract background task spawning to startup.rs
This commit is contained in:
@@ -28,6 +28,7 @@ mod log_layer;
|
||||
mod poller;
|
||||
mod routes;
|
||||
mod scheduler;
|
||||
mod startup;
|
||||
mod state;
|
||||
mod telemetry;
|
||||
mod webhook;
|
||||
@@ -115,16 +116,11 @@ async fn main() -> anyhow::Result<()> {
|
||||
cors_origins: config.cors_allowed_origins.clone(),
|
||||
};
|
||||
|
||||
let bg_channel_repo_poller = bg_channel_repo.clone();
|
||||
let bg_schedule_engine = Arc::clone(&state.schedule_engine);
|
||||
tokio::spawn(scheduler::run_auto_scheduler(bg_schedule_engine, bg_channel_repo, event_tx.clone()));
|
||||
|
||||
let bg_schedule_engine_poller = Arc::clone(&state.schedule_engine);
|
||||
tokio::spawn(poller::run_broadcast_poller(
|
||||
bg_schedule_engine_poller,
|
||||
bg_channel_repo_poller,
|
||||
startup::spawn_background_tasks(
|
||||
Arc::clone(&state.schedule_engine),
|
||||
bg_channel_repo,
|
||||
event_tx,
|
||||
));
|
||||
);
|
||||
|
||||
let app = Router::new()
|
||||
.nest("/api/v1", routes::api_v1_router())
|
||||
|
||||
24
k-tv-backend/api/src/startup.rs
Normal file
24
k-tv-backend/api/src/startup.rs
Normal file
@@ -0,0 +1,24 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use domain::{ChannelRepository, DomainEvent, ScheduleEngineService};
|
||||
use tokio::sync::broadcast;
|
||||
|
||||
use crate::{poller, scheduler};
|
||||
|
||||
pub fn spawn_background_tasks(
|
||||
schedule_engine: Arc<ScheduleEngineService>,
|
||||
channel_repo: Arc<dyn ChannelRepository>,
|
||||
event_tx: broadcast::Sender<DomainEvent>,
|
||||
) {
|
||||
let bg_channel_repo = channel_repo.clone();
|
||||
tokio::spawn(scheduler::run_auto_scheduler(
|
||||
Arc::clone(&schedule_engine),
|
||||
bg_channel_repo,
|
||||
event_tx.clone(),
|
||||
));
|
||||
tokio::spawn(poller::run_broadcast_poller(
|
||||
schedule_engine,
|
||||
channel_repo,
|
||||
event_tx,
|
||||
));
|
||||
}
|
||||
Reference in New Issue
Block a user