This commit is contained in:
parent
805889b3d9
commit
3c9d15779d
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -249,7 +249,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nodrift"
|
||||
version = "0.3.1"
|
||||
version = "0.3.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
|
@ -35,22 +35,7 @@ where
|
||||
let drifter = drifter.clone();
|
||||
|
||||
async move {
|
||||
let start = std::time::Instant::now();
|
||||
|
||||
tracing::debug!("running job");
|
||||
let child_token = cancellation_token.child_token();
|
||||
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();
|
||||
let mut wait = interval.saturating_sub(elapsed);
|
||||
tracing::debug!(
|
||||
"job took: {}ms, waiting: {}ms for next run",
|
||||
elapsed.as_millis(),
|
||||
wait.as_millis()
|
||||
);
|
||||
let mut wait = Duration::default();
|
||||
|
||||
loop {
|
||||
let child_token = cancellation_token.child_token();
|
||||
@ -228,6 +213,23 @@ mod tests {
|
||||
assert!(logs_contain("running job"));
|
||||
assert!(logs_contain("job took:"));
|
||||
|
||||
Ok(())
|
||||
}
|
||||
#[tokio::test]
|
||||
#[traced_test]
|
||||
async fn test_calls_trace_on_start_and_end_long() -> anyhow::Result<()> {
|
||||
let token = schedule(Duration::from_millis(100), || async {
|
||||
tokio::time::sleep(std::time::Duration::from_millis(50)).await;
|
||||
|
||||
Ok(())
|
||||
});
|
||||
tokio::time::sleep(Duration::from_millis(500)).await;
|
||||
|
||||
assert!(!token.is_cancelled());
|
||||
|
||||
assert!(logs_contain("running job"));
|
||||
assert!(logs_contain("job took:"));
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user