From 8bfc6c996126484b0fa5465b980439dfb10419db Mon Sep 17 00:00:00 2001 From: Sanne Raymaekers Date: Tue, 7 Jun 2022 11:58:52 +0200 Subject: [PATCH] dbjobqueue: Filter maintenance queries based on results Jobs that already had their results nulled, shouldn't be included in the maintenance job. --- cmd/osbuild-composer-dbjobqueue-tests/main_test.go | 2 +- internal/jobqueue/dbjobqueue/dbjobqueue.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/osbuild-composer-dbjobqueue-tests/main_test.go b/cmd/osbuild-composer-dbjobqueue-tests/main_test.go index 962d74958..5537f45e4 100644 --- a/cmd/osbuild-composer-dbjobqueue-tests/main_test.go +++ b/cmd/osbuild-composer-dbjobqueue-tests/main_test.go @@ -74,7 +74,7 @@ func setFinishedAt(t *testing.T, q *dbjobqueue.DBJobQueue, id uuid.UUID, finishe started := finished.Add(-time.Second) queued := started.Add(-time.Second) - _, err = conn.Exec(context.Background(), "UPDATE jobs SET queued_at = $1, started_at = $2, finished_at = $3 WHERE id = $4", queued, started, finished, id) + _, err = conn.Exec(context.Background(), "UPDATE jobs SET queued_at = $1, started_at = $2, finished_at = $3, result = '{\"result\": \"success\" }' WHERE id = $4", queued, started, finished, id) require.NoError(t, err) } diff --git a/internal/jobqueue/dbjobqueue/dbjobqueue.go b/internal/jobqueue/dbjobqueue/dbjobqueue.go index 3b0819e29..81e9ed6c2 100644 --- a/internal/jobqueue/dbjobqueue/dbjobqueue.go +++ b/internal/jobqueue/dbjobqueue/dbjobqueue.go @@ -104,7 +104,7 @@ const ( sqlQueryJobsUptoByType = ` SELECT array_agg(id), type FROM jobs - WHERE type = ANY($1) AND finished_at < $2 + WHERE type = ANY($1) AND finished_at < $2 AND result IS NOT NULL GROUP BY type` sqlDeleteJobResult = ` UPDATE jobs