From 2ecb4ce8e8167ef5d536ec26c6db7914fb6e89f1 Mon Sep 17 00:00:00 2001 From: Sholom Ber <46351743+Himmelschmidt@users.noreply.github.com> Date: Thu, 8 Jan 2026 14:31:21 -0500 Subject: [PATCH] feat: use DateTime abstraction from apalis-sql Replace direct chrono dependency with DateTime/DateTimeExt from apalis-sql, enabling support for both chrono and time datetime libraries via feature flags. Changes: - Add `chrono` (default) and `time` feature flags - Use DateTimeExt::from_unix_timestamp instead of chrono::Utc.timestamp_opt - Update apalis dependencies to 0.7.0-rc.2 - Move chrono to dev-dependencies (only needed for tests/examples) Related: apalis-dev/apalis#655 --- CHANGELOG.md | 4 + Cargo.lock | 176 ++++++++++++++++++++++++------------- Cargo.toml | 20 +++-- examples/realtime.rs | 2 +- src/fetcher.rs | 2 +- src/from_row.rs | 35 +++----- src/lib.rs | 4 +- src/queries/fetch_by_id.rs | 2 +- src/queries/list_tasks.rs | 2 +- src/queries/wait_for.rs | 4 +- src/shared.rs | 4 +- supply-chain/config.toml | 80 +++++++++++------ supply-chain/imports.lock | 4 + 13 files changed, 211 insertions(+), 128 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 81d3175..1aa51d9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- feat: use DateTime abstraction from apalis-sql +- bump: update apalis deps to rc.2 - bump: to v1.0.0-rc.1 (#28) ## [1.0.0-beta.4] - 2025-12-08 diff --git a/Cargo.lock b/Cargo.lock index 0118a06..174bd06 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,9 +19,9 @@ dependencies = [ [[package]] name = "apalis" -version = "1.0.0-rc.1" +version = "1.0.0-rc.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93be0eb33b912f5e66004d0b756423c285273259068b1c80a71d7842658189b" +checksum = "543708a780aff326f4fd63bf8ed85f9d79647af7fa1fbe33bb1e221930cd3e25" dependencies = [ "apalis-core", "futures-util", @@ -33,9 +33,9 @@ dependencies = [ [[package]] name = "apalis-codec" -version = "0.1.0-rc.1" +version = "0.1.0-rc.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5ed6bb8e64c360ed4ad666a6cbc42e9e6df73087461dc4071f510a3af284637" +checksum = "ce833bf2acb6984eaa4e58ee4afacc0eaaefabc2c54ad5df46ea43255d115f7f" dependencies = [ "apalis-core", "serde", @@ -44,9 +44,9 @@ dependencies = [ [[package]] name = "apalis-core" -version = "1.0.0-rc.1" +version = "1.0.0-rc.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1557d680ee4a9b42a76ab3a9572cee1a00d45e7eb455427d906c42774766e7" +checksum = "54b7edea7ba9866a1bc2e58f39183bdf204d78db45402d9ac1eb67d0e482735e" dependencies = [ "futures-channel", "futures-core", @@ -63,20 +63,21 @@ dependencies = [ [[package]] name = "apalis-sql" -version = "1.0.0-rc.1" +version = "1.0.0-rc.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ade5d8faa60e9975b01d3bb1ebc5028589aa4986365eaa4d080d30ed3b5141f" +checksum = "02b9d5873918c664ffcd0768f5048a261cd83a1741eed80f96a77091e6dc3e47" dependencies = [ "apalis-core", "chrono", "serde", "serde_json", "thiserror", + "time", ] [[package]] name = "apalis-sqlite" -version = "1.0.0-rc.1" +version = "1.0.0-rc.2" dependencies = [ "apalis", "apalis-codec", @@ -99,9 +100,9 @@ dependencies = [ [[package]] name = "apalis-workflow" -version = "0.1.0-rc.1" +version = "0.1.0-rc.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc024da2d5d3ab59cc9fea099a2e2b20de5ff608f2e287abcb73aa45e4966a89" +checksum = "7644137d6a79de42f41aeff2fc5c624d23d95e36b4ce290f0ad89301e2f7259b" dependencies = [ "apalis-core", "futures", @@ -284,9 +285,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" -version = "1.8.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e050f626429857a27ddccb31e0aca21356bfa709c04041aefddac081a8f068a" +checksum = "7d809780667f4410e7c41b07f52439b94d2bdf8528eeedc287fa38d3b7f95d82" [[package]] name = "bitflags" @@ -345,9 +346,9 @@ checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" [[package]] name = "cc" -version = "1.2.50" +version = "1.2.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f50d563227a1c37cc0a263f64eca3334388c01c5e4c4861a9def205c614383c" +checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203" dependencies = [ "find-msvc-tools", "shlex", @@ -464,6 +465,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "deranged" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" +dependencies = [ + "powerfmt", + "serde_core", +] + [[package]] name = "digest" version = "0.10.7" @@ -573,9 +584,9 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "find-msvc-tools" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" +checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff" [[package]] name = "fixedbitset" @@ -1008,9 +1019,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.12.1" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", "hashbrown 0.16.1", @@ -1038,9 +1049,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee5b5339afb4c41626dde77b7a611bd4f2c202b897852b4bcf5d03eddc61010" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "js-sys" @@ -1072,9 +1083,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.178" +version = "0.2.179" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" +checksum = "c5a2d376baa530d1238d133232d15e239abad80d05838b4b59354e5268af431f" [[package]] name = "libm" @@ -1084,13 +1095,13 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df15f6eac291ed1cf25865b1ee60399f57e7c227e7f51bdbd4c5270396a9ed50" +checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" dependencies = [ "bitflags 2.10.0", "libc", - "redox_syscall 0.6.0", + "redox_syscall 0.7.0", ] [[package]] @@ -1200,6 +1211,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-integer" version = "0.1.46" @@ -1446,6 +1463,12 @@ dependencies = [ "zerovec", ] +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" version = "0.2.21" @@ -1457,18 +1480,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.42" +version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" +checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a" dependencies = [ "proc-macro2", ] @@ -1549,9 +1572,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec96166dafa0886eb81fe1c0a388bece180fbef2135f97c1e2cf8302e74b43b5" +checksum = "49f3fe0889e69e2ae9e41f4d6c4c0181701d00e4697b356fb1f74173a5e0ee27" dependencies = [ "bitflags 2.10.0", ] @@ -1572,9 +1595,9 @@ dependencies = [ [[package]] name = "rsa" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40a0376c50d0358279d9d643e4bf7b7be212f1f4ff1da9070a7b54d22ef75c88" +checksum = "b8573f03f5883dcaebdfcf4725caa1ecb9c15b2ef50c43a07b816e06799bb12d" dependencies = [ "const-oid", "digest", @@ -1619,9 +1642,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.35" +version = "0.23.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "533f54bc6a7d4f647e46ad909549eda97bf5afc1585190ef692b4286b198bd8f" +checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" dependencies = [ "once_cell", "ring", @@ -1659,9 +1682,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62049b2877bf12821e8f9ad256ee38fdc31db7387ec2d3b3f403024de2034aea" +checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" [[package]] name = "schannel" @@ -1733,9 +1756,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.147" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6af14725505314343e673e9ecb7cd7e8a36aa9791eb936235a3567cc31447ae4" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", @@ -1894,6 +1917,7 @@ dependencies = [ "sha2", "smallvec", "thiserror", + "time", "tokio", "tokio-stream", "tracing", @@ -1979,6 +2003,7 @@ dependencies = [ "sqlx-core", "stringprep", "thiserror", + "time", "tracing", "whoami", ] @@ -2017,6 +2042,7 @@ dependencies = [ "sqlx-core", "stringprep", "thiserror", + "time", "tracing", "whoami", ] @@ -2042,6 +2068,7 @@ dependencies = [ "serde_urlencoded", "sqlx-core", "thiserror", + "time", "tracing", "url", ] @@ -2071,9 +2098,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.111" +version = "2.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" +checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" dependencies = [ "proc-macro2", "quote", @@ -2130,6 +2157,37 @@ dependencies = [ "syn", ] +[[package]] +name = "time" +version = "0.3.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" + +[[package]] +name = "time-macros" +version = "0.2.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" +dependencies = [ + "num-conv", + "time-core", +] + [[package]] name = "tinystr" version = "0.8.2" @@ -2157,9 +2215,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.48.0" +version = "1.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" +checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" dependencies = [ "bytes", "libc", @@ -2183,9 +2241,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" dependencies = [ "futures-core", "pin-project-lite", @@ -2194,9 +2252,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.17" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" dependencies = [ "bytes", "futures-core", @@ -2318,9 +2376,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.7" +version = "2.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" dependencies = [ "form_urlencoded", "idna", @@ -2463,14 +2521,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.4", + "webpki-roots 1.0.5", ] [[package]] name = "webpki-roots" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2878ef029c47c6e8cf779119f20fcf52bde7ad42a731b2a304bc221df17571e" +checksum = "12bed680863276c63889429bfd6cab3b99943659923822de1c8a39c49e4d722c" dependencies = [ "rustls-pki-types", ] @@ -2825,18 +2883,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.31" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" +checksum = "668f5168d10b9ee831de31933dc111a459c97ec93225beb307aed970d1372dfd" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.31" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" +checksum = "2c7962b26b0a8685668b671ee4b54d007a67d4eaf05fda79ac0ecf41e32270f1" dependencies = [ "proc-macro2", "quote", @@ -2905,6 +2963,6 @@ dependencies = [ [[package]] name = "zmij" -version = "0.1.8" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1dccf46b25b205e4bebe1d5258a991df1cc17801017a845cb5b3fe0269781aa" +checksum = "2fc5a66a20078bf1251bde995aa2fdcc4b800c70b5d92dd2c62abc5c60f679f8" diff --git a/Cargo.toml b/Cargo.toml index 05c0f3d..7f4bdd9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apalis-sqlite" -version = "1.0.0-rc.1" +version = "1.0.0-rc.2" authors = ["Njuguna Mureithi "] readme = "README.md" edition = "2024" @@ -11,39 +11,41 @@ keywords = ["apalis", "background-jobs", "task-queue", "sqlite", "async"] categories = ["asynchronous", "database"] [features] -default = ["tokio-comp", "migrate", "json"] +default = ["tokio-comp", "migrate", "json", "chrono"] migrate = ["sqlx/migrate", "sqlx/macros"] async-std-comp = ["async-std", "sqlx/runtime-async-std-rustls"] async-std-comp-native-tls = ["async-std", "sqlx/runtime-async-std-native-tls"] tokio-comp = ["tokio", "sqlx/runtime-tokio-rustls"] tokio-comp-native-tls = ["tokio", "sqlx/runtime-tokio-native-tls"] json = ["apalis-codec/json", "sqlx/json"] +chrono = ["apalis-sql/chrono", "sqlx/chrono"] +time = ["apalis-sql/time", "sqlx/time"] [dependencies.sqlx] version = "0.8.6" default-features = false -features = ["chrono", "sqlite"] +features = ["sqlite"] [dependencies] serde = { version = "1", features = ["derive"] } serde_json = { version = "1" } -apalis-codec = { version = "0.1.0-rc.1", default-features = false } -apalis-core = { version = "1.0.0-rc.1", features = ["sleep"] } -apalis-sql = { version = "1.0.0-rc.1" } +apalis-codec = { version = "0.1.0-rc.2", default-features = false } +apalis-core = { version = "1.0.0-rc.2", features = ["sleep"] } +apalis-sql = { version = "1.0.0-rc.2", default-features = false } log = "0.4.21" futures = "0.3.30" tokio = { version = "1", features = ["rt", "net"], optional = true } async-std = { version = "1.13.0", optional = true } -chrono = { version = "0.4", features = ["serde"] } thiserror = "2.0.0" pin-project = "1.1.10" ulid = { version = "1", features = ["serde"] } [dev-dependencies] tokio = { version = "1", features = ["macros", "rt-multi-thread"] } -apalis = { version = "1.0.0-rc.1" } -apalis-workflow = { version = "0.1.0-rc.1" } +apalis = { version = "1.0.0-rc.2" } +apalis-workflow = { version = "0.1.0-rc.2" } futures-util = "0.3.31" +chrono = "0.4" [package.metadata.docs.rs] # defines the configuration attribute `docsrs` diff --git a/examples/realtime.rs b/examples/realtime.rs index 6069275..21b6907 100644 --- a/examples/realtime.rs +++ b/examples/realtime.rs @@ -7,7 +7,7 @@ async fn main() { let mut backend = SqliteStorage::new_with_callback(":memory:", &config); let pool = backend.pool(); - SqliteStorage::setup(&pool).await.unwrap(); + SqliteStorage::setup(pool).await.unwrap(); backend.push(42).await.unwrap(); diff --git a/src/fetcher.rs b/src/fetcher.rs index c10dcb9..97952d9 100644 --- a/src/fetcher.rs +++ b/src/fetcher.rs @@ -11,7 +11,7 @@ use apalis_core::{ task::Task, worker::context::WorkerContext, }; -use apalis_sql::from_row::TaskRow; +use apalis_sql::TaskRow; use futures::{FutureExt, future::BoxFuture, stream::Stream}; use pin_project::pin_project; use sqlx::{Pool, Sqlite, SqlitePool}; diff --git a/src/from_row.rs b/src/from_row.rs index 739ae48..7c3f133 100644 --- a/src/from_row.rs +++ b/src/from_row.rs @@ -1,4 +1,4 @@ -use chrono::{TimeZone, Utc}; +use apalis_sql::{DateTime, DateTimeExt, TaskRow}; #[derive(Debug)] pub(crate) struct SqliteTaskRow { @@ -17,11 +17,11 @@ pub(crate) struct SqliteTaskRow { pub(crate) metadata: Option, } -impl TryInto for SqliteTaskRow { +impl TryInto for SqliteTaskRow { type Error = sqlx::Error; - fn try_into(self) -> Result { - Ok(apalis_sql::from_row::TaskRow { + fn try_into(self) -> Result { + Ok(TaskRow { job: self.job, id: self .id @@ -37,28 +37,19 @@ impl TryInto for SqliteTaskRow { .ok_or_else(|| sqlx::Error::Protocol("Missing attempts".into()))? as usize, max_attempts: self.max_attempts.map(|v| v as usize), - run_at: self.run_at.map(|ts| { - Utc.timestamp_opt(ts, 0) - .single() - .ok_or_else(|| sqlx::Error::Protocol("Invalid run_at timestamp".into())) - .unwrap() - }), + run_at: self + .run_at + .map(::from_unix_timestamp), last_result: self .last_result .map(|res| serde_json::from_str(&res).unwrap_or(serde_json::Value::Null)), - lock_at: self.lock_at.map(|ts| { - Utc.timestamp_opt(ts, 0) - .single() - .ok_or_else(|| sqlx::Error::Protocol("Invalid run_at timestamp".into())) - .unwrap() - }), + lock_at: self + .lock_at + .map(::from_unix_timestamp), lock_by: self.lock_by, - done_at: self.done_at.map(|ts| { - Utc.timestamp_opt(ts, 0) - .single() - .ok_or_else(|| sqlx::Error::Protocol("Invalid run_at timestamp".into())) - .unwrap() - }), + done_at: self + .done_at + .map(::from_unix_timestamp), priority: self.priority.map(|v| v as usize), metadata: self .metadata diff --git a/src/lib.rs b/src/lib.rs index 9d95cbb..1c6dde2 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -324,7 +324,7 @@ where type CompactStream = TaskStream, sqlx::Error>; fn get_queue(&self) -> Queue { - self.config.queue().to_owned() + self.config.queue().clone() } fn poll_compact(self, worker: &WorkerContext) -> Self::CompactStream { @@ -397,7 +397,7 @@ where type CompactStream = TaskStream, sqlx::Error>; fn get_queue(&self) -> Queue { - self.config.queue().to_owned() + self.config.queue().clone() } fn poll_compact(self, worker: &WorkerContext) -> Self::CompactStream { diff --git a/src/queries/fetch_by_id.rs b/src/queries/fetch_by_id.rs index 3eb1c41..2162622 100644 --- a/src/queries/fetch_by_id.rs +++ b/src/queries/fetch_by_id.rs @@ -2,7 +2,7 @@ use apalis_core::{ backend::{BackendExt, FetchById, codec::Codec}, task::task_id::TaskId, }; -use apalis_sql::from_row::{FromRowError, TaskRow}; +use apalis_sql::{TaskRow, from_row::FromRowError}; use ulid::Ulid; use crate::{CompactType, SqliteContext, SqliteStorage, SqliteTask, from_row::SqliteTaskRow}; diff --git a/src/queries/list_tasks.rs b/src/queries/list_tasks.rs index 89e332c..ac907f9 100644 --- a/src/queries/list_tasks.rs +++ b/src/queries/list_tasks.rs @@ -2,7 +2,7 @@ use apalis_core::{ backend::{BackendExt, Filter, ListAllTasks, ListTasks, codec::Codec}, task::{Task, status::Status}, }; -use apalis_sql::from_row::{FromRowError, TaskRow}; +use apalis_sql::{TaskRow, from_row::FromRowError}; use ulid::Ulid; use crate::{CompactType, SqliteContext, SqliteStorage, SqliteTask, from_row::SqliteTaskRow}; diff --git a/src/queries/wait_for.rs b/src/queries/wait_for.rs index a90eb0b..44c70e9 100644 --- a/src/queries/wait_for.rs +++ b/src/queries/wait_for.rs @@ -22,7 +22,7 @@ where Self: BackendExt, Result: DeserializeOwned, { - type ResultStream = BoxStream<'static, Result, Self::Error>>; + type ResultStream = BoxStream<'static, Result, Self::Error>>; fn wait_for( &self, task_ids: impl IntoIterator>, @@ -78,7 +78,7 @@ where fn check_status( &self, task_ids: impl IntoIterator> + Send, - ) -> impl Future>, Self::Error>> + Send { + ) -> impl Future>, Self::Error>> + Send { let pool = self.pool.clone(); let ids: Vec = task_ids.into_iter().map(|id| id.to_string()).collect(); diff --git a/src/shared.rs b/src/shared.rs index afee25f..c5da80d 100644 --- a/src/shared.rs +++ b/src/shared.rs @@ -22,7 +22,7 @@ use apalis_core::{ layers::Stack, worker::{context::WorkerContext, ext::ack::AcknowledgeLayer}, }; -use apalis_sql::from_row::TaskRow; +use apalis_sql::TaskRow; use futures::{ FutureExt, SinkExt, Stream, StreamExt, TryStreamExt, channel::mpsc::{self, Receiver, Sender}, @@ -284,7 +284,7 @@ where type CompactStream = TaskStream, sqlx::Error>; fn get_queue(&self) -> Queue { - self.config.queue().to_owned() + self.config.queue().clone() } fn poll_compact(self, worker: &WorkerContext) -> Self::CompactStream { diff --git a/supply-chain/config.toml b/supply-chain/config.toml index 1326f45..2959789 100644 --- a/supply-chain/config.toml +++ b/supply-chain/config.toml @@ -16,19 +16,19 @@ version = "0.1.5" criteria = "safe-to-deploy" [[exemptions.apalis]] -version = "1.0.0-rc.1" +version = "1.0.0-rc.2" criteria = "safe-to-run" [[exemptions.apalis-codec]] -version = "0.1.0-rc.1" +version = "0.1.0-rc.2" criteria = "safe-to-deploy" [[exemptions.apalis-core]] -version = "1.0.0-rc.1" +version = "1.0.0-rc.2" criteria = "safe-to-deploy" [[exemptions.apalis-sql]] -version = "1.0.0-rc.1" +version = "1.0.0-rc.2" criteria = "safe-to-deploy" [[exemptions.apalis-sqlite]] @@ -36,7 +36,7 @@ version = "1.0.0-beta.3" criteria = "safe-to-deploy" [[exemptions.apalis-workflow]] -version = "0.1.0-rc.1" +version = "0.1.0-rc.2" criteria = "safe-to-run" [[exemptions.async-channel]] @@ -96,7 +96,7 @@ version = "0.22.1" criteria = "safe-to-deploy" [[exemptions.base64ct]] -version = "1.8.1" +version = "1.8.2" criteria = "safe-to-deploy" [[exemptions.bitflags]] @@ -128,7 +128,7 @@ version = "1.11.0" criteria = "safe-to-deploy" [[exemptions.cc]] -version = "1.2.50" +version = "1.2.51" criteria = "safe-to-deploy" [[exemptions.cfg-if]] @@ -183,6 +183,10 @@ criteria = "safe-to-deploy" version = "0.7.10" criteria = "safe-to-deploy" +[[exemptions.deranged]] +version = "0.5.5" +criteria = "safe-to-deploy" + [[exemptions.digest]] version = "0.10.7" criteria = "safe-to-deploy" @@ -232,7 +236,7 @@ version = "2.3.0" criteria = "safe-to-deploy" [[exemptions.find-msvc-tools]] -version = "0.1.5" +version = "0.1.6" criteria = "safe-to-deploy" [[exemptions.fixedbitset]] @@ -412,7 +416,7 @@ version = "1.2.1" criteria = "safe-to-deploy" [[exemptions.indexmap]] -version = "2.12.1" +version = "2.13.0" criteria = "safe-to-deploy" [[exemptions.instant]] @@ -424,7 +428,7 @@ version = "1.0.11" criteria = "safe-to-deploy" [[exemptions.itoa]] -version = "1.0.16" +version = "1.0.17" criteria = "safe-to-deploy" [[exemptions.js-sys]] @@ -440,7 +444,7 @@ version = "1.5.0" criteria = "safe-to-deploy" [[exemptions.libc]] -version = "0.2.178" +version = "0.2.179" criteria = "safe-to-deploy" [[exemptions.libm]] @@ -448,7 +452,7 @@ version = "0.2.15" criteria = "safe-to-deploy" [[exemptions.libredox]] -version = "0.1.11" +version = "0.1.12" criteria = "safe-to-deploy" [[exemptions.libsqlite3-sys]] @@ -495,6 +499,10 @@ criteria = "safe-to-deploy" version = "0.8.6" criteria = "safe-to-deploy" +[[exemptions.num-conv]] +version = "0.1.0" +criteria = "safe-to-deploy" + [[exemptions.num-integer]] version = "0.1.46" criteria = "safe-to-deploy" @@ -595,16 +603,20 @@ criteria = "safe-to-deploy" version = "0.1.4" criteria = "safe-to-deploy" +[[exemptions.powerfmt]] +version = "0.2.0" +criteria = "safe-to-deploy" + [[exemptions.ppv-lite86]] version = "0.2.21" criteria = "safe-to-deploy" [[exemptions.proc-macro2]] -version = "1.0.103" +version = "1.0.105" criteria = "safe-to-deploy" [[exemptions.quote]] -version = "1.0.42" +version = "1.0.43" criteria = "safe-to-deploy" [[exemptions.r-efi]] @@ -640,7 +652,7 @@ version = "0.5.18" criteria = "safe-to-deploy" [[exemptions.redox_syscall]] -version = "0.6.0" +version = "0.7.0" criteria = "safe-to-deploy" [[exemptions.ring]] @@ -648,7 +660,7 @@ version = "0.17.14" criteria = "safe-to-deploy" [[exemptions.rsa]] -version = "0.9.9" +version = "0.9.10" criteria = "safe-to-deploy" [[exemptions.rustix]] @@ -660,7 +672,7 @@ version = "1.1.3" criteria = "safe-to-deploy" [[exemptions.rustls]] -version = "0.23.35" +version = "0.23.36" criteria = "safe-to-deploy" [[exemptions.rustls-pki-types]] @@ -676,7 +688,7 @@ version = "1.0.22" criteria = "safe-to-deploy" [[exemptions.ryu]] -version = "1.0.21" +version = "1.0.22" criteria = "safe-to-deploy" [[exemptions.schannel]] @@ -708,7 +720,7 @@ version = "1.0.228" criteria = "safe-to-deploy" [[exemptions.serde_json]] -version = "1.0.147" +version = "1.0.149" criteria = "safe-to-deploy" [[exemptions.serde_urlencoded]] @@ -796,7 +808,7 @@ version = "2.6.1" criteria = "safe-to-deploy" [[exemptions.syn]] -version = "2.0.111" +version = "2.0.114" criteria = "safe-to-deploy" [[exemptions.sync_wrapper]] @@ -819,6 +831,18 @@ criteria = "safe-to-deploy" version = "2.0.17" criteria = "safe-to-deploy" +[[exemptions.time]] +version = "0.3.44" +criteria = "safe-to-deploy" + +[[exemptions.time-core]] +version = "0.1.6" +criteria = "safe-to-deploy" + +[[exemptions.time-macros]] +version = "0.2.24" +criteria = "safe-to-deploy" + [[exemptions.tinystr]] version = "0.8.2" criteria = "safe-to-deploy" @@ -832,7 +856,7 @@ version = "0.1.1" criteria = "safe-to-deploy" [[exemptions.tokio]] -version = "1.48.0" +version = "1.49.0" criteria = "safe-to-deploy" [[exemptions.tokio-macros]] @@ -840,11 +864,11 @@ version = "2.6.0" criteria = "safe-to-deploy" [[exemptions.tokio-stream]] -version = "0.1.17" +version = "0.1.18" criteria = "safe-to-deploy" [[exemptions.tokio-util]] -version = "0.7.17" +version = "0.7.18" criteria = "safe-to-run" [[exemptions.tower]] @@ -900,7 +924,7 @@ version = "0.9.0" criteria = "safe-to-deploy" [[exemptions.url]] -version = "2.5.7" +version = "2.5.8" criteria = "safe-to-deploy" [[exemptions.utf8_iter]] @@ -968,7 +992,7 @@ version = "0.26.11" criteria = "safe-to-deploy" [[exemptions.webpki-roots]] -version = "1.0.4" +version = "1.0.5" criteria = "safe-to-deploy" [[exemptions.whoami]] @@ -1148,11 +1172,11 @@ version = "0.8.1" criteria = "safe-to-deploy" [[exemptions.zerocopy]] -version = "0.8.31" +version = "0.8.33" criteria = "safe-to-deploy" [[exemptions.zerocopy-derive]] -version = "0.8.31" +version = "0.8.33" criteria = "safe-to-deploy" [[exemptions.zerofrom]] @@ -1180,5 +1204,5 @@ version = "0.11.2" criteria = "safe-to-deploy" [[exemptions.zmij]] -version = "0.1.8" +version = "1.0.12" criteria = "safe-to-deploy" diff --git a/supply-chain/imports.lock b/supply-chain/imports.lock index 3b39ad4..3c2314c 100644 --- a/supply-chain/imports.lock +++ b/supply-chain/imports.lock @@ -8,3 +8,7 @@ audited_as = "1.0.0-beta.3" [[unpublished.apalis-sqlite]] version = "1.0.0-rc.1" audited_as = "1.0.0-beta.4" + +[[unpublished.apalis-sqlite]] +version = "1.0.0-rc.2" +audited_as = "1.0.0-rc.1"