From 55498adffdef85488154d3ef78e3ceadc0f073bd Mon Sep 17 00:00:00 2001 From: kjuulh Date: Fri, 13 Dec 2024 23:26:04 +0100 Subject: [PATCH] feat: allow job to start immediately Signed-off-by: kjuulh --- crates/drift/src/lib.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/crates/drift/src/lib.rs b/crates/drift/src/lib.rs index 1ab4f4a..f720499 100644 --- a/crates/drift/src/lib.rs +++ b/crates/drift/src/lib.rs @@ -34,6 +34,21 @@ where async move { let mut wait = interval; + let start = std::time::Instant::now(); + + tracing::debug!("running job"); + if let Err(e) = drifter.execute(child_token).await { + tracing::error!("drift job failed with error: {}, stopping routine", e); + cancellation_token.cancel(); + } + + let elapsed = start.elapsed(); + wait = interval.saturating_sub(elapsed); + tracing::debug!( + "job took: {}ms, waiting: {}ms for next run", + elapsed.as_millis(), + wait.as_millis() + ); loop { let child_token = cancellation_token.child_token();