diff --git a/.sqlx/query-a0dcac1deb02eb19959aedcde6e8864a459891ff9b5447882bcd6a43856b91f4.json b/.sqlx/query-1d230cefb235caeb4cad414270b3db5a2d99d80df76525fd3a181bcc3f037f94.json similarity index 69% rename from .sqlx/query-a0dcac1deb02eb19959aedcde6e8864a459891ff9b5447882bcd6a43856b91f4.json rename to .sqlx/query-1d230cefb235caeb4cad414270b3db5a2d99d80df76525fd3a181bcc3f037f94.json index b196afe..e25ad67 100644 --- a/.sqlx/query-a0dcac1deb02eb19959aedcde6e8864a459891ff9b5447882bcd6a43856b91f4.json +++ b/.sqlx/query-1d230cefb235caeb4cad414270b3db5a2d99d80df76525fd3a181bcc3f037f94.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "SELECT\n *\nFROM\n apalis.jobs\nWHERE\n id = $1\nLIMIT\n 1;\n", + "query": "SELECT\n job,\n id,\n job_type,\n status,\n attempts,\n max_attempts,\n run_at as \"run_at: chrono::DateTime\",\n last_result,\n lock_at as \"lock_at: chrono::DateTime\",\n lock_by,\n done_at as \"done_at: chrono::DateTime\",\n priority,\n metadata\nFROM\n apalis.jobs\nWHERE\n id = $1\nLIMIT\n 1;\n", "describe": { "columns": [ { @@ -35,7 +35,7 @@ }, { "ordinal": 6, - "name": "run_at", + "name": "run_at: chrono::DateTime", "type_info": "Timestamptz" }, { @@ -45,7 +45,7 @@ }, { "ordinal": 8, - "name": "lock_at", + "name": "lock_at: chrono::DateTime", "type_info": "Timestamptz" }, { @@ -55,7 +55,7 @@ }, { "ordinal": 10, - "name": "done_at", + "name": "done_at: chrono::DateTime", "type_info": "Timestamptz" }, { @@ -90,5 +90,5 @@ true ] }, - "hash": "a0dcac1deb02eb19959aedcde6e8864a459891ff9b5447882bcd6a43856b91f4" + "hash": "1d230cefb235caeb4cad414270b3db5a2d99d80df76525fd3a181bcc3f037f94" } diff --git a/.sqlx/query-fc3801ddf6016402eb1ab46da4e6d733992fd5b98269ad25c25dc9e9d7a1db0a.json b/.sqlx/query-4098d7b096fce19251e5992c95ec6aacf3243e22bdbecec7569a763a928d60ec.json similarity index 70% rename from .sqlx/query-fc3801ddf6016402eb1ab46da4e6d733992fd5b98269ad25c25dc9e9d7a1db0a.json rename to .sqlx/query-4098d7b096fce19251e5992c95ec6aacf3243e22bdbecec7569a763a928d60ec.json index e2aad84..b5eb921 100644 --- a/.sqlx/query-fc3801ddf6016402eb1ab46da4e6d733992fd5b98269ad25c25dc9e9d7a1db0a.json +++ b/.sqlx/query-4098d7b096fce19251e5992c95ec6aacf3243e22bdbecec7569a763a928d60ec.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "SELECT\n *\nFROM\n apalis.get_jobs($1, $2, $3)\n", + "query": "SELECT\n job,\n id,\n job_type,\n status,\n attempts,\n max_attempts,\n run_at as \"run_at: chrono::DateTime\",\n last_result,\n lock_at as \"lock_at: chrono::DateTime\",\n lock_by,\n done_at as \"done_at: chrono::DateTime\",\n priority,\n metadata\nFROM\n apalis.get_jobs($1, $2, $3)\n", "describe": { "columns": [ { @@ -35,7 +35,7 @@ }, { "ordinal": 6, - "name": "run_at", + "name": "run_at: chrono::DateTime", "type_info": "Timestamptz" }, { @@ -45,7 +45,7 @@ }, { "ordinal": 8, - "name": "lock_at", + "name": "lock_at: chrono::DateTime", "type_info": "Timestamptz" }, { @@ -55,7 +55,7 @@ }, { "ordinal": 10, - "name": "done_at", + "name": "done_at: chrono::DateTime", "type_info": "Timestamptz" }, { @@ -92,5 +92,5 @@ null ] }, - "hash": "fc3801ddf6016402eb1ab46da4e6d733992fd5b98269ad25c25dc9e9d7a1db0a" + "hash": "4098d7b096fce19251e5992c95ec6aacf3243e22bdbecec7569a763a928d60ec" } diff --git a/.sqlx/query-6ce4a9f7891abb2452136bef3a9d9065d452490dc7dde0d6f0590838f386f39c.json b/.sqlx/query-7ad19b947c2f7b77fbde2d5745ca868c474b8483248cb8b1be1f89173384d0b0.json similarity index 75% rename from .sqlx/query-6ce4a9f7891abb2452136bef3a9d9065d452490dc7dde0d6f0590838f386f39c.json rename to .sqlx/query-7ad19b947c2f7b77fbde2d5745ca868c474b8483248cb8b1be1f89173384d0b0.json index aed4ae7..4cfba71 100644 --- a/.sqlx/query-6ce4a9f7891abb2452136bef3a9d9065d452490dc7dde0d6f0590838f386f39c.json +++ b/.sqlx/query-7ad19b947c2f7b77fbde2d5745ca868c474b8483248cb8b1be1f89173384d0b0.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "UPDATE\n apalis.jobs\nSET\n status = 'Running',\n lock_at = now(),\n lock_by = $2\nWHERE\n (\n status = 'Pending'\n OR status = 'Queued'\n OR (\n status = 'Failed'\n AND attempts < max_attempts\n )\n )\n AND run_at < now()\n AND id = ANY($1) RETURNING *;\n", + "query": "UPDATE\n apalis.jobs\nSET\n status = 'Running',\n lock_at = now(),\n lock_by = $2\nWHERE\n (\n status = 'Pending'\n OR status = 'Queued'\n OR (\n status = 'Failed'\n AND attempts < max_attempts\n )\n )\n AND run_at < now()\n AND id = ANY($1)\nRETURNING\n job,\n id,\n job_type,\n status,\n attempts,\n max_attempts,\n run_at as \"run_at: chrono::DateTime\",\n last_result,\n lock_at as \"lock_at: chrono::DateTime\",\n lock_by,\n done_at as \"done_at: chrono::DateTime\",\n priority,\n metadata;\n", "describe": { "columns": [ { @@ -35,7 +35,7 @@ }, { "ordinal": 6, - "name": "run_at", + "name": "run_at: chrono::DateTime", "type_info": "Timestamptz" }, { @@ -45,7 +45,7 @@ }, { "ordinal": 8, - "name": "lock_at", + "name": "lock_at: chrono::DateTime", "type_info": "Timestamptz" }, { @@ -55,7 +55,7 @@ }, { "ordinal": 10, - "name": "done_at", + "name": "done_at: chrono::DateTime", "type_info": "Timestamptz" }, { @@ -91,5 +91,5 @@ true ] }, - "hash": "6ce4a9f7891abb2452136bef3a9d9065d452490dc7dde0d6f0590838f386f39c" + "hash": "7ad19b947c2f7b77fbde2d5745ca868c474b8483248cb8b1be1f89173384d0b0" } diff --git a/.sqlx/query-aec15451aa407010d95e6014b0e6b4a361a6cc85c26c56ea82cdd2c37a123dac.json b/.sqlx/query-bff410ccc68691ec1feee0741b25ec74087d98103fec3e81d2f97909bc2f97be.json similarity index 67% rename from .sqlx/query-aec15451aa407010d95e6014b0e6b4a361a6cc85c26c56ea82cdd2c37a123dac.json rename to .sqlx/query-bff410ccc68691ec1feee0741b25ec74087d98103fec3e81d2f97909bc2f97be.json index e3cc46d..6a8727b 100644 --- a/.sqlx/query-aec15451aa407010d95e6014b0e6b4a361a6cc85c26c56ea82cdd2c37a123dac.json +++ b/.sqlx/query-bff410ccc68691ec1feee0741b25ec74087d98103fec3e81d2f97909bc2f97be.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "SELECT\n *\nFROM\n apalis.jobs\nWHERE\n status = $1\n AND job_type = $2\nORDER BY\n done_at DESC,\n run_at DESC\nLIMIT\n $3 OFFSET $4\n", + "query": "SELECT\n job,\n id,\n job_type,\n status,\n attempts,\n max_attempts,\n run_at as \"run_at: chrono::DateTime\",\n last_result,\n lock_at as \"lock_at: chrono::DateTime\",\n lock_by,\n done_at as \"done_at: chrono::DateTime\",\n priority,\n metadata\nFROM\n apalis.jobs\nWHERE\n status = $1\n AND job_type = $2\nORDER BY\n done_at DESC,\n run_at DESC\nLIMIT\n $3 OFFSET $4\n", "describe": { "columns": [ { @@ -35,7 +35,7 @@ }, { "ordinal": 6, - "name": "run_at", + "name": "run_at: chrono::DateTime", "type_info": "Timestamptz" }, { @@ -45,7 +45,7 @@ }, { "ordinal": 8, - "name": "lock_at", + "name": "lock_at: chrono::DateTime", "type_info": "Timestamptz" }, { @@ -55,7 +55,7 @@ }, { "ordinal": 10, - "name": "done_at", + "name": "done_at: chrono::DateTime", "type_info": "Timestamptz" }, { @@ -93,5 +93,5 @@ true ] }, - "hash": "aec15451aa407010d95e6014b0e6b4a361a6cc85c26c56ea82cdd2c37a123dac" + "hash": "bff410ccc68691ec1feee0741b25ec74087d98103fec3e81d2f97909bc2f97be" } diff --git a/.sqlx/query-1989cc0be6f389d4211ebd23cfa961105f4df7c023b50b0da3acae8881d4d010.json b/.sqlx/query-c9030d4461626f291bbbb4f82f97e087b16709259da264739330447efb458781.json similarity index 72% rename from .sqlx/query-1989cc0be6f389d4211ebd23cfa961105f4df7c023b50b0da3acae8881d4d010.json rename to .sqlx/query-c9030d4461626f291bbbb4f82f97e087b16709259da264739330447efb458781.json index 7008f4e..a7d4a3f 100644 --- a/.sqlx/query-1989cc0be6f389d4211ebd23cfa961105f4df7c023b50b0da3acae8881d4d010.json +++ b/.sqlx/query-c9030d4461626f291bbbb4f82f97e087b16709259da264739330447efb458781.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "UPDATE apalis.jobs\nSET \n status = 'Queued',\n lock_at = now(),\n lock_by = $2\nWHERE \n status = 'Pending'\n AND run_at < now()\n AND id = ANY($1)\nRETURNING *;\n", + "query": "UPDATE apalis.jobs\nSET \n status = 'Queued',\n lock_at = now(),\n lock_by = $2\nWHERE \n status = 'Pending'\n AND run_at < now()\n AND id = ANY($1)\nRETURNING\n job,\n id,\n job_type,\n status,\n attempts,\n max_attempts,\n run_at as \"run_at: chrono::DateTime\",\n last_result,\n lock_at as \"lock_at: chrono::DateTime\",\n lock_by,\n done_at as \"done_at: chrono::DateTime\",\n priority,\n metadata;\n", "describe": { "columns": [ { @@ -35,7 +35,7 @@ }, { "ordinal": 6, - "name": "run_at", + "name": "run_at: chrono::DateTime", "type_info": "Timestamptz" }, { @@ -45,7 +45,7 @@ }, { "ordinal": 8, - "name": "lock_at", + "name": "lock_at: chrono::DateTime", "type_info": "Timestamptz" }, { @@ -55,7 +55,7 @@ }, { "ordinal": 10, - "name": "done_at", + "name": "done_at: chrono::DateTime", "type_info": "Timestamptz" }, { @@ -91,5 +91,5 @@ true ] }, - "hash": "1989cc0be6f389d4211ebd23cfa961105f4df7c023b50b0da3acae8881d4d010" + "hash": "c9030d4461626f291bbbb4f82f97e087b16709259da264739330447efb458781" } diff --git a/.sqlx/query-54c019f6453cd767b36f76e31d27434375c562b9a88ed32895ec39793459268b.json b/.sqlx/query-d5ce38c364c5edba64876223121204e0580a8369aeb77a0767ccdc0f84ce19e4.json similarity index 61% rename from .sqlx/query-54c019f6453cd767b36f76e31d27434375c562b9a88ed32895ec39793459268b.json rename to .sqlx/query-d5ce38c364c5edba64876223121204e0580a8369aeb77a0767ccdc0f84ce19e4.json index e06f2fd..c74ab24 100644 --- a/.sqlx/query-54c019f6453cd767b36f76e31d27434375c562b9a88ed32895ec39793459268b.json +++ b/.sqlx/query-d5ce38c364c5edba64876223121204e0580a8369aeb77a0767ccdc0f84ce19e4.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "SELECT\n *\nFROM\n apalis.workers\nORDER BY\n last_seen DESC\nLIMIT\n $1 OFFSET $2\n", + "query": "SELECT\n id,\n worker_type,\n storage_name,\n layers,\n last_seen as \"last_seen: chrono::DateTime\",\n started_at as \"started_at: chrono::DateTime\"\nFROM\n apalis.workers\nORDER BY\n last_seen DESC\nLIMIT\n $1 OFFSET $2\n", "describe": { "columns": [ { @@ -25,12 +25,12 @@ }, { "ordinal": 4, - "name": "last_seen", + "name": "last_seen: chrono::DateTime", "type_info": "Timestamptz" }, { "ordinal": 5, - "name": "started_at", + "name": "started_at: chrono::DateTime", "type_info": "Timestamptz" } ], @@ -49,5 +49,5 @@ true ] }, - "hash": "54c019f6453cd767b36f76e31d27434375c562b9a88ed32895ec39793459268b" + "hash": "d5ce38c364c5edba64876223121204e0580a8369aeb77a0767ccdc0f84ce19e4" } diff --git a/.sqlx/query-fe90494e81b507098f8b8704e8d61500f5e81da8d38ffd1e03db0148eb889c78.json b/.sqlx/query-f40ec7c13a85e8db4fd1d1a68c0704a78d30462e0fc2ab9cd09b23e98bf55198.json similarity index 68% rename from .sqlx/query-fe90494e81b507098f8b8704e8d61500f5e81da8d38ffd1e03db0148eb889c78.json rename to .sqlx/query-f40ec7c13a85e8db4fd1d1a68c0704a78d30462e0fc2ab9cd09b23e98bf55198.json index 3f5b84e..93edd53 100644 --- a/.sqlx/query-fe90494e81b507098f8b8704e8d61500f5e81da8d38ffd1e03db0148eb889c78.json +++ b/.sqlx/query-f40ec7c13a85e8db4fd1d1a68c0704a78d30462e0fc2ab9cd09b23e98bf55198.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "SELECT\n *\nFROM\n apalis.jobs\nWHERE\n status = $1\nORDER BY\n done_at DESC,\n run_at DESC\nLIMIT\n $2 OFFSET $3\n", + "query": "SELECT\n job,\n id,\n job_type,\n status,\n attempts,\n max_attempts,\n run_at as \"run_at: chrono::DateTime\",\n last_result,\n lock_at as \"lock_at: chrono::DateTime\",\n lock_by,\n done_at as \"done_at: chrono::DateTime\",\n priority,\n metadata\nFROM\n apalis.jobs\nWHERE\n status = $1\nORDER BY\n done_at DESC,\n run_at DESC\nLIMIT\n $2 OFFSET $3\n", "describe": { "columns": [ { @@ -35,7 +35,7 @@ }, { "ordinal": 6, - "name": "run_at", + "name": "run_at: chrono::DateTime", "type_info": "Timestamptz" }, { @@ -45,7 +45,7 @@ }, { "ordinal": 8, - "name": "lock_at", + "name": "lock_at: chrono::DateTime", "type_info": "Timestamptz" }, { @@ -55,7 +55,7 @@ }, { "ordinal": 10, - "name": "done_at", + "name": "done_at: chrono::DateTime", "type_info": "Timestamptz" }, { @@ -92,5 +92,5 @@ true ] }, - "hash": "fe90494e81b507098f8b8704e8d61500f5e81da8d38ffd1e03db0148eb889c78" + "hash": "f40ec7c13a85e8db4fd1d1a68c0704a78d30462e0fc2ab9cd09b23e98bf55198" } diff --git a/.sqlx/query-7084948e4ad9e6ce5238a11cd3a80b62a46384d8c75433cbcee1746e26934f14.json b/.sqlx/query-ff52324655f0803f57184ad4bd34b2bfcaa0077816e554f4ef550d1c32d54a4d.json similarity index 60% rename from .sqlx/query-7084948e4ad9e6ce5238a11cd3a80b62a46384d8c75433cbcee1746e26934f14.json rename to .sqlx/query-ff52324655f0803f57184ad4bd34b2bfcaa0077816e554f4ef550d1c32d54a4d.json index 7599759..294fbbb 100644 --- a/.sqlx/query-7084948e4ad9e6ce5238a11cd3a80b62a46384d8c75433cbcee1746e26934f14.json +++ b/.sqlx/query-ff52324655f0803f57184ad4bd34b2bfcaa0077816e554f4ef550d1c32d54a4d.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "SELECT\n *\nFROM\n apalis.workers\nWHERE\n worker_type = $1\nORDER BY\n last_seen DESC\nLIMIT\n $2 OFFSET $3\n", + "query": "SELECT\n id,\n worker_type,\n storage_name,\n layers,\n last_seen as \"last_seen: chrono::DateTime\",\n started_at as \"started_at: chrono::DateTime\"\nFROM\n apalis.workers\nWHERE\n worker_type = $1\nORDER BY\n last_seen DESC\nLIMIT\n $2 OFFSET $3\n", "describe": { "columns": [ { @@ -25,12 +25,12 @@ }, { "ordinal": 4, - "name": "last_seen", + "name": "last_seen: chrono::DateTime", "type_info": "Timestamptz" }, { "ordinal": 5, - "name": "started_at", + "name": "started_at: chrono::DateTime", "type_info": "Timestamptz" } ], @@ -50,5 +50,5 @@ true ] }, - "hash": "7084948e4ad9e6ce5238a11cd3a80b62a46384d8c75433cbcee1746e26934f14" + "hash": "ff52324655f0803f57184ad4bd34b2bfcaa0077816e554f4ef550d1c32d54a4d" } diff --git a/Cargo.lock b/Cargo.lock index 064dc41..e88dc57 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -464,6 +464,15 @@ dependencies = [ "zeroize", ] +[[package]] +name = "deranged" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" +dependencies = [ + "powerfmt", +] + [[package]] name = "digest" version = "0.10.7" @@ -1199,6 +1208,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" @@ -1445,6 +1460,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" @@ -1893,6 +1914,7 @@ dependencies = [ "sha2", "smallvec", "thiserror", + "time", "tokio", "tokio-stream", "tracing", @@ -1978,6 +2000,7 @@ dependencies = [ "sqlx-core", "stringprep", "thiserror", + "time", "tracing", "whoami", ] @@ -2016,6 +2039,7 @@ dependencies = [ "sqlx-core", "stringprep", "thiserror", + "time", "tracing", "whoami", ] @@ -2041,6 +2065,7 @@ dependencies = [ "serde_urlencoded", "sqlx-core", "thiserror", + "time", "tracing", "url", ] @@ -2129,6 +2154,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" diff --git a/Cargo.toml b/Cargo.toml index 07a652e..c0ffb10 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -52,3 +52,10 @@ once_cell = "1.19.0" apalis = { version = "1.0.0-rc.1" } apalis-workflow = { version = "0.1.0-rc.1" } futures-util = "0.3.30" +# When the `chrono` and `time` feature of the sqlx crate are activated, +# you must cast all types in the query macros to the chrono type, because +# by default `sqlx` choses the datetime types from `time`. +# +# By adding this line to dev-dependencies, `cargo test` will run with both features enabled, +# ensuring everything works +sqlx = { version = "0.8.1", features = ["time"] } diff --git a/queries/backend/list_all_jobs.sql b/queries/backend/list_all_jobs.sql index 23f14ea..d4dbcaa 100644 --- a/queries/backend/list_all_jobs.sql +++ b/queries/backend/list_all_jobs.sql @@ -1,5 +1,17 @@ SELECT - * + job, + id, + job_type, + status, + attempts, + max_attempts, + run_at as "run_at: chrono::DateTime", + last_result, + lock_at as "lock_at: chrono::DateTime", + lock_by, + done_at as "done_at: chrono::DateTime", + priority, + metadata FROM apalis.jobs WHERE diff --git a/queries/backend/list_all_workers.sql b/queries/backend/list_all_workers.sql index a9b3b9f..aa804ec 100644 --- a/queries/backend/list_all_workers.sql +++ b/queries/backend/list_all_workers.sql @@ -1,5 +1,10 @@ SELECT - * + id, + worker_type, + storage_name, + layers, + last_seen as "last_seen: chrono::DateTime", + started_at as "started_at: chrono::DateTime" FROM apalis.workers ORDER BY diff --git a/queries/backend/list_jobs.sql b/queries/backend/list_jobs.sql index 669f528..d23950d 100644 --- a/queries/backend/list_jobs.sql +++ b/queries/backend/list_jobs.sql @@ -1,5 +1,17 @@ SELECT - * + job, + id, + job_type, + status, + attempts, + max_attempts, + run_at as "run_at: chrono::DateTime", + last_result, + lock_at as "lock_at: chrono::DateTime", + lock_by, + done_at as "done_at: chrono::DateTime", + priority, + metadata FROM apalis.jobs WHERE diff --git a/queries/backend/list_workers.sql b/queries/backend/list_workers.sql index 4a1fb68..f1b897b 100644 --- a/queries/backend/list_workers.sql +++ b/queries/backend/list_workers.sql @@ -1,5 +1,10 @@ SELECT - * + id, + worker_type, + storage_name, + layers, + last_seen as "last_seen: chrono::DateTime", + started_at as "started_at: chrono::DateTime" FROM apalis.workers WHERE diff --git a/queries/task/fetch_next.sql b/queries/task/fetch_next.sql index 84754e9..8795230 100644 --- a/queries/task/fetch_next.sql +++ b/queries/task/fetch_next.sql @@ -1,4 +1,16 @@ SELECT - * + job, + id, + job_type, + status, + attempts, + max_attempts, + run_at as "run_at: chrono::DateTime", + last_result, + lock_at as "lock_at: chrono::DateTime", + lock_by, + done_at as "done_at: chrono::DateTime", + priority, + metadata FROM apalis.get_jobs($1, $2, $3) diff --git a/queries/task/find_by_id.sql b/queries/task/find_by_id.sql index fb94222..e2c4fc1 100644 --- a/queries/task/find_by_id.sql +++ b/queries/task/find_by_id.sql @@ -1,5 +1,17 @@ SELECT - * + job, + id, + job_type, + status, + attempts, + max_attempts, + run_at as "run_at: chrono::DateTime", + last_result, + lock_at as "lock_at: chrono::DateTime", + lock_by, + done_at as "done_at: chrono::DateTime", + priority, + metadata FROM apalis.jobs WHERE diff --git a/queries/task/lock_by_id.sql b/queries/task/lock_by_id.sql index 0315032..ad00a4b 100644 --- a/queries/task/lock_by_id.sql +++ b/queries/task/lock_by_id.sql @@ -14,4 +14,18 @@ WHERE ) ) AND run_at < now() - AND id = ANY($1) RETURNING *; + AND id = ANY($1) +RETURNING + job, + id, + job_type, + status, + attempts, + max_attempts, + run_at as "run_at: chrono::DateTime", + last_result, + lock_at as "lock_at: chrono::DateTime", + lock_by, + done_at as "done_at: chrono::DateTime", + priority, + metadata; diff --git a/queries/task/queue_by_id.sql b/queries/task/queue_by_id.sql index 813c2cc..7fcb05e 100644 --- a/queries/task/queue_by_id.sql +++ b/queries/task/queue_by_id.sql @@ -7,4 +7,17 @@ WHERE status = 'Pending' AND run_at < now() AND id = ANY($1) -RETURNING *; +RETURNING + job, + id, + job_type, + status, + attempts, + max_attempts, + run_at as "run_at: chrono::DateTime", + last_result, + lock_at as "lock_at: chrono::DateTime", + lock_by, + done_at as "done_at: chrono::DateTime", + priority, + metadata; diff --git a/src/queries/register_worker.rs b/src/queries/register_worker.rs index 641c4f5..01b2dbf 100644 --- a/src/queries/register_worker.rs +++ b/src/queries/register_worker.rs @@ -15,7 +15,7 @@ pub async fn register( worker_type, backend_type, worker.get_service(), - last_seen + last_seen as chrono::DateTime, ) .execute(&pool) .await?; diff --git a/src/sink.rs b/src/sink.rs index 2c0565f..7ee39a9 100644 --- a/src/sink.rs +++ b/src/sink.rs @@ -76,7 +76,7 @@ where &job_type, &job_data, &max_attempts_vec, - &run_ats, + run_ats.as_slice() as &[chrono::DateTime], &priorities, &metadata )