25 lines
643 B
Rust
25 lines
643 B
Rust
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,
|
|
));
|
|
}
|