Skip to content

Commit 45b4fcc

Browse files
committed
Remove the schedule_expression from the database & other fixes
1 parent 8dbc914 commit 45b4fcc

14 files changed

+116
-53
lines changed
Lines changed: 4 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/storage-pg/.sqlx/query-3355b3b5729d8240297a5ac8111ce891e626a82dcb78ff85f2b815d9329ff936.json

Lines changed: 0 additions & 17 deletions
This file was deleted.

crates/storage-pg/.sqlx/query-3e6e3aad53b22fc53eb3ee881b29bb249b18ced57d6a4809dffc23972b3e9423.json

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/storage-pg/.sqlx/query-5b21644dd3c094b0f2f8babb2c730554dc067d0a6cad963dd7e0c66a80b342bf.json

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/storage-pg/.sqlx/query-8f4f071f844281fb14ecd99db3261540441b14c8206038fdc4a4336bbae3f382.json

Lines changed: 17 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/storage-pg/.sqlx/query-9ad4e6e9bfedea476d1f47753e4738455e94eade48ad5f577e53278cc70dc266.json

Lines changed: 32 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/storage-pg/.sqlx/query-f8182fd162ffb018d4f102fa7ddbc9991135065e81af8f77b5beef9405607577.json

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/storage-pg/migrations/20241125110803_queue_job_recurrent.sql

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,7 @@
66
-- Add a table to track the state of scheduled recurring jobs.
77
CREATE TABLE queue_schedules (
88
-- A unique name for the schedule
9-
schedule_name TEXT PRIMARY KEY,
10-
11-
-- The cron expression to use to schedule the job. This is there just for
12-
-- convenience, as this is defined by the backend
13-
schedule_expression TEXT NOT NULL,
9+
schedule_name TEXT NOT NULL PRIMARY KEY,
1410

1511
-- The last time the job was scheduled. If NULL, it means that the job was
1612
-- never scheduled.
@@ -22,7 +18,7 @@ CREATE TABLE queue_schedules (
2218
REFERENCES queue_jobs (queue_job_id)
2319
);
2420

25-
-- When a job is scheduled from a recurreing schedule, we keep a column
21+
-- When a job is scheduled from a recurring schedule, we keep a column
2622
-- referencing the name of the schedule
2723
ALTER TABLE queue_jobs
2824
ADD COLUMN schedule_name TEXT

crates/storage-pg/src/queue/schedule.rs

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
99
use async_trait::async_trait;
1010
use chrono::{DateTime, Utc};
11-
use mas_storage::queue::{QueueScheduleRepository, Schedule, ScheduleStatus};
11+
use mas_storage::queue::{QueueScheduleRepository, ScheduleStatus};
1212
use sqlx::PgConnection;
1313

1414
use crate::{DatabaseError, ExecuteExt};
@@ -45,22 +45,17 @@ impl From<ScheduleLookup> for ScheduleStatus {
4545
}
4646

4747
#[async_trait]
48-
impl<'c> QueueScheduleRepository for PgQueueScheduleRepository<'c> {
48+
impl QueueScheduleRepository for PgQueueScheduleRepository<'_> {
4949
type Error = DatabaseError;
5050

51-
async fn setup(&mut self, schedules: &[(&'static str, Schedule)]) -> Result<(), Self::Error> {
51+
async fn setup(&mut self, schedules: &[&'static str]) -> Result<(), Self::Error> {
5252
sqlx::query!(
5353
r#"
54-
INSERT INTO queue_schedules (schedule_name, schedule_expression)
55-
SELECT * FROM UNNEST($1::text[], $2::text[]) AS t (schedule_name, schedule_expression)
56-
ON CONFLICT (schedule_name) DO UPDATE
57-
SET schedule_expression = EXCLUDED.schedule_expression
54+
INSERT INTO queue_schedules (schedule_name)
55+
SELECT * FROM UNNEST($1::text[]) AS t (schedule_name)
56+
ON CONFLICT (schedule_name) DO NOTHING
5857
"#,
59-
&schedules.iter().map(|(name, _)| (*name).to_owned()).collect::<Vec<_>>(),
60-
&schedules
61-
.iter()
62-
.map(|(_, schedule)| schedule.source().to_owned())
63-
.collect::<Vec<_>>()
58+
&schedules.iter().map(|&s| s.to_owned()).collect::<Vec<_>>(),
6459
)
6560
.traced()
6661
.execute(&mut *self.conn)
@@ -74,7 +69,7 @@ impl<'c> QueueScheduleRepository for PgQueueScheduleRepository<'c> {
7469
ScheduleLookup,
7570
r#"
7671
SELECT
77-
queue_schedules.schedule_name as "schedule_name!",
72+
queue_schedules.schedule_name,
7873
queue_schedules.last_scheduled_at,
7974
queue_jobs.status IN ('completed', 'failed') as last_scheduled_job_completed
8075
FROM queue_schedules

crates/storage/src/queue/job.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
88
use async_trait::async_trait;
99
use chrono::{DateTime, Duration, Utc};
10-
use cron::Schedule;
1110
use opentelemetry::trace::TraceContextExt;
1211
use rand_core::RngCore;
1312
use serde::{Deserialize, Serialize};

0 commit comments

Comments
 (0)