From 7f2934338fdc6ce29890daaca8d06a1a09ccf992 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Thu, 19 Feb 2026 00:46:26 +0300 Subject: [PATCH] pscand-cli: configuration overrides scanner default interval Signed-off-by: NotAShelf Change-Id: I2e338b03ff26b355d8fd430772f94cd46a6a6964 --- crates/pscand-cli/src/main.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/crates/pscand-cli/src/main.rs b/crates/pscand-cli/src/main.rs index a9d0b8b..dcae7f8 100644 --- a/crates/pscand-cli/src/main.rs +++ b/crates/pscand-cli/src/main.rs @@ -37,6 +37,7 @@ struct RunArgs { struct LoadedScanner { name: String, scanner: Arc>>, + interval: Duration, #[allow(dead_code)] library: Library, } @@ -283,10 +284,11 @@ async fn run_daemon(args: RunArgs) -> Result<(), Box> { let logger = Arc::clone(&logger_clone); let name = loaded.name.clone(); let scanner = loaded.scanner.clone(); + let scanner_interval = loaded.interval; let state = daemon_state_clone.clone(); let handle = tokio::spawn(async move { - let mut ticker = interval(Duration::from_secs(1)); + let mut ticker = interval(scanner_interval); let _collection_start = Instant::now(); loop { @@ -491,9 +493,17 @@ async fn load_scanners( } } + // Determine interval: config override > scanner default + let interval = config + .scanner_config(&name) + .and_then(|c| c.interval_secs) + .map(Duration::from_secs) + .unwrap_or_else(|| scanner.interval()); + loaded.push(LoadedScanner { name, scanner: Arc::new(RwLock::new(scanner)), + interval, library: lib, }); }