Compare commits
8 Commits
v0.2.0
...
930ed08888
Author | SHA1 | Date | |
---|---|---|---|
|
930ed08888 | ||
d684ca866c | |||
e8c89723ca | |||
720ee972f8 | |||
991fd5dd83
|
|||
84820dcc82
|
|||
55498adffd
|
|||
08145eed13 |
16
CHANGELOG.md
16
CHANGELOG.md
@@ -6,6 +6,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.3.1] - 2024-12-14
|
||||
|
||||
### Other
|
||||
- *(deps)* update rust crate tracing to v0.1.41
|
||||
- Configure Renovate (#4)
|
||||
|
||||
## [0.3.0] - 2024-12-13
|
||||
|
||||
### Added
|
||||
- allow job to start immediately
|
||||
- rename and publish
|
||||
|
||||
### Fixed
|
||||
- test can now run at least 2 times, initial and then via. delay
|
||||
- with child token as well
|
||||
|
||||
## [0.2.0] - 2024-08-02
|
||||
|
||||
### Added
|
||||
|
41
Cargo.lock
generated
41
Cargo.lock
generated
@@ -1,6 +1,6 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
version = 4
|
||||
|
||||
[[package]]
|
||||
name = "aho-corasick"
|
||||
@@ -52,19 +52,6 @@ version = "1.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||
|
||||
[[package]]
|
||||
name = "drift"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
"thiserror",
|
||||
"tokio",
|
||||
"tokio-util",
|
||||
"tracing",
|
||||
"tracing-test",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "futures-core"
|
||||
version = "0.3.30"
|
||||
@@ -140,6 +127,19 @@ dependencies = [
|
||||
"windows-sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "nodrift"
|
||||
version = "0.3.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
"thiserror",
|
||||
"tokio",
|
||||
"tokio-util",
|
||||
"tracing",
|
||||
"tracing-test",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "nu-ansi-term"
|
||||
version = "0.46.0"
|
||||
@@ -398,11 +398,10 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tracing"
|
||||
version = "0.1.37"
|
||||
version = "0.1.41"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
|
||||
checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"log",
|
||||
"pin-project-lite",
|
||||
"tracing-attributes",
|
||||
@@ -411,9 +410,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tracing-attributes"
|
||||
version = "0.1.24"
|
||||
version = "0.1.28"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74"
|
||||
checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -422,9 +421,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tracing-core"
|
||||
version = "0.1.31"
|
||||
version = "0.1.33"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
|
||||
checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c"
|
||||
dependencies = [
|
||||
"once_cell",
|
||||
"valuable",
|
||||
|
@@ -3,7 +3,7 @@ members = ["crates/*"]
|
||||
resolver = "2"
|
||||
|
||||
[workspace.package]
|
||||
version = "0.2.0"
|
||||
version = "0.3.1"
|
||||
|
||||
[workspace.dependencies]
|
||||
drift = { path = "crates/drift" }
|
||||
|
@@ -1,6 +1,8 @@
|
||||
[package]
|
||||
name = "drift"
|
||||
name = "nodrift"
|
||||
version.workspace = true
|
||||
description = "no Drift is an application for scheduling recurring jobs"
|
||||
license = "MIT"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
|
@@ -34,6 +34,22 @@ where
|
||||
|
||||
async move {
|
||||
let mut wait = interval;
|
||||
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();
|
||||
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();
|
||||
@@ -187,7 +203,7 @@ mod tests {
|
||||
assert!(token.is_cancelled());
|
||||
|
||||
let counter = drifter.counter.lock().unwrap();
|
||||
assert_eq!(*counter, 1);
|
||||
assert_eq!(*counter, 2);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
3
renovate.json
Normal file
3
renovate.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json"
|
||||
}
|
Reference in New Issue
Block a user