fix: garbage collect job table + delete leaked ones (#4767)

This commit is contained in:
Lucas Abel
2024-11-21 09:02:24 +01:00
committed by GitHub
parent b7a9cec289
commit c99d360c3c
6 changed files with 31 additions and 2 deletions
@@ -5,7 +5,7 @@
"columns": [
{
"ordinal": 0,
"name": "bool",
"name": "?column?",
"type_info": "Bool"
}
],
@@ -5,7 +5,7 @@
"columns": [
{
"ordinal": 0,
"name": "bool",
"name": "?column?",
"type_info": "Bool"
}
],
@@ -0,0 +1,14 @@
{
"db_name": "PostgreSQL",
"query": "DELETE FROM job WHERE id = ANY($1)",
"describe": {
"columns": [],
"parameters": {
"Left": [
"UuidArray"
]
},
"nullable": []
},
"hash": "803b9c1373541cf52f416cde9e9e99ab79072e21dfaafb498aac25a059bd2f30"
}
@@ -0,0 +1,2 @@
-- Add down migration script here
-- Nothing to do here
@@ -0,0 +1,4 @@
-- Add up migration script here
DELETE FROM job
WHERE NOT EXISTS (SELECT 1 FROM completed_job WHERE completed_job.id = job.id)
AND NOT EXISTS (SELECT 1 FROM queue WHERE queue.id = job.id);
+9
View File
@@ -686,6 +686,15 @@ pub async fn delete_expired_items(db: &DB) -> () {
{
tracing::error!("Error deleting log file: {:?}", e);
}
if let Err(e) = sqlx::query!(
"DELETE FROM job WHERE id = ANY($1)",
&deleted_jobs
)
.execute(&mut *tx)
.await
{
tracing::error!("Error deleting job: {:?}", e);
}
}
}
Err(e) => {