From 31c0253b00acb135c458ded996959d0715bcb310 Mon Sep 17 00:00:00 2001 From: alyssa Date: Thu, 2 Jan 2025 00:27:30 +0000 Subject: [PATCH] fix(scheduled_tasks): replace broken time parsing code with cron library --- services/avatars/src/cleanup.rs | 5 ++++- services/scheduled_tasks/src/tasks.rs | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/services/avatars/src/cleanup.rs b/services/avatars/src/cleanup.rs index be21ff6c..428d034e 100644 --- a/services/avatars/src/cleanup.rs +++ b/services/avatars/src/cleanup.rs @@ -55,7 +55,10 @@ async fn cleanup_job(pool: sqlx::PgPool, bucket: Arc) -> anyhow::Res let mut tx = pool.begin().await?; let image_id: Option = - sqlx::query_as("select id from image_cleanup_jobs for update skip locked limit 1;") + sqlx::query_as(r#" + select id from image_cleanup_jobs + where ts < now() - interval '1 day' + for update skip locked limit 1;"#) .fetch_optional(&mut *tx) .await?; if image_id.is_none() { diff --git a/services/scheduled_tasks/src/tasks.rs b/services/scheduled_tasks/src/tasks.rs index 0d7f5b9c..f528310c 100644 --- a/services/scheduled_tasks/src/tasks.rs +++ b/services/scheduled_tasks/src/tasks.rs @@ -131,7 +131,7 @@ pub async fn queue_deleted_image_cleanup(ctx: AppCtx) -> anyhow::Result<()> { .execute( r#" insert into image_cleanup_jobs -select id from images where +select id, now() from images where not exists (select from image_cleanup_jobs j where j.id = images.id) and not exists (select from systems where avatar_url = images.url) and not exists (select from systems where banner_image = images.url)