From 75b8f7b8a57eeb33c8250817b5285381e27da0d3 Mon Sep 17 00:00:00 2001 From: xiaoski Date: Tue, 5 May 2026 00:06:57 +0800 Subject: [PATCH] feat: add SchedulerConfig to GatewayConfig --- src/config/mod.rs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/config/mod.rs b/src/config/mod.rs index d44f949..9d965cf 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -140,6 +140,43 @@ pub struct GatewayConfig { pub cleanup_interval_minutes: Option, #[serde(default, rename = "session_db_path")] pub session_db_path: Option, + #[serde(default)] + pub scheduler: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct SchedulerConfig { + /// Whether the scheduler is enabled + #[serde(default = "default_scheduler_enabled")] + pub enabled: bool, + /// Poll interval in seconds (how often to check for due jobs) + #[serde(default = "default_poll_interval_secs")] + pub poll_interval_secs: u64, + /// Maximum concurrent job executions (currently sequential, reserved for future) + #[serde(default = "default_max_concurrent")] + pub max_concurrent: usize, +} + +fn default_scheduler_enabled() -> bool { + true +} + +fn default_poll_interval_secs() -> u64 { + 60 +} + +fn default_max_concurrent() -> usize { + 1 +} + +impl Default for SchedulerConfig { + fn default() -> Self { + Self { + enabled: true, + poll_interval_secs: 60, + max_concurrent: 1, + } + } } #[derive(Debug, Clone, Deserialize, Serialize)] @@ -168,6 +205,7 @@ impl Default for GatewayConfig { session_ttl_hours: None, cleanup_interval_minutes: None, session_db_path: None, + scheduler: None, } } }