pscand-cli: configuration overrides scanner default interval
Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: I2e338b03ff26b355d8fd430772f94cd46a6a6964
This commit is contained in:
parent
e66e754e9a
commit
7f2934338f
1 changed files with 11 additions and 1 deletions
|
|
@ -37,6 +37,7 @@ struct RunArgs {
|
||||||
struct LoadedScanner {
|
struct LoadedScanner {
|
||||||
name: String,
|
name: String,
|
||||||
scanner: Arc<RwLock<Box<dyn Scanner>>>,
|
scanner: Arc<RwLock<Box<dyn Scanner>>>,
|
||||||
|
interval: Duration,
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
library: Library,
|
library: Library,
|
||||||
}
|
}
|
||||||
|
|
@ -283,10 +284,11 @@ async fn run_daemon(args: RunArgs) -> Result<(), Box<dyn std::error::Error>> {
|
||||||
let logger = Arc::clone(&logger_clone);
|
let logger = Arc::clone(&logger_clone);
|
||||||
let name = loaded.name.clone();
|
let name = loaded.name.clone();
|
||||||
let scanner = loaded.scanner.clone();
|
let scanner = loaded.scanner.clone();
|
||||||
|
let scanner_interval = loaded.interval;
|
||||||
let state = daemon_state_clone.clone();
|
let state = daemon_state_clone.clone();
|
||||||
|
|
||||||
let handle = tokio::spawn(async move {
|
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();
|
let _collection_start = Instant::now();
|
||||||
|
|
||||||
loop {
|
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 {
|
loaded.push(LoadedScanner {
|
||||||
name,
|
name,
|
||||||
scanner: Arc::new(RwLock::new(scanner)),
|
scanner: Arc::new(RwLock::new(scanner)),
|
||||||
|
interval,
|
||||||
library: lib,
|
library: lib,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue