use std::sync::Arc;
use std::time::Duration;
use crate::engine::CrawlEngine;
use super::jobs::JobRegistry;
const DEFAULT_JOB_MAX_AGE: Duration = Duration::from_secs(3600);
#[derive(Clone)]
pub struct ApiState {
pub engine: Arc<CrawlEngine>,
pub jobs: Arc<JobRegistry>,
}
impl ApiState {
pub fn new(engine: Arc<CrawlEngine>) -> Self {
let jobs = Arc::new(JobRegistry::new());
jobs.spawn_eviction_task(DEFAULT_JOB_MAX_AGE);
Self { engine, jobs }
}
}