From 3f6a17b09f99d5c91124dfd63f55e9f67281b0a0 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Thu, 14 Jul 2022 18:20:41 +0200 Subject: [PATCH] proxy: scheduler: only do a single round of time alignment and drop counter not much value in waiting an extra minute, that doesn't really guarantees better scheduling (as in, less impact on startup). Dropping that also allows easily to drop the counter by just moving the sleep to the beginning of the loop. Signed-off-by: Thomas Lamprecht --- src/bin/proxmox-backup-proxy.rs | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/src/bin/proxmox-backup-proxy.rs b/src/bin/proxmox-backup-proxy.rs index f907ac7c..8b9a0c9e 100644 --- a/src/bin/proxmox-backup-proxy.rs +++ b/src/bin/proxmox-backup-proxy.rs @@ -527,26 +527,19 @@ fn next_minute() -> Instant { } async fn run_task_scheduler() { - let mut count: usize = 0; - loop { - count += 1; - + // sleep first to align to next minute boundary for first round let delay_target = next_minute(); - - if count > 2 { - // wait 1..2 minutes before starting - match schedule_tasks().catch_unwind().await { - Err(panic) => match panic.downcast::<&str>() { - Ok(msg) => eprintln!("task scheduler panic: {msg}"), - Err(_) => eprintln!("task scheduler panic - unknown type"), - }, - Ok(Err(err)) => eprintln!("task scheduler failed - {err:?}"), - Ok(Ok(_)) => {} - } - } - tokio::time::sleep_until(tokio::time::Instant::from_std(delay_target)).await; + + match schedule_tasks().catch_unwind().await { + Err(panic) => match panic.downcast::<&str>() { + Ok(msg) => eprintln!("task scheduler panic: {msg}"), + Err(_) => eprintln!("task scheduler panic - unknown type"), + }, + Ok(Err(err)) => eprintln!("task scheduler failed - {err:?}"), + Ok(Ok(_)) => {} + } } }