From 6ec493d9448b8ec5ca5ec09e08635b489e7028be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Mon, 13 Jun 2022 15:26:39 +0200 Subject: [PATCH] Manager, more efficiently create tasks When creating tasks the inter-task dependencies are saved as a 2nd pass,by updating the tasks in the database. This now only saves those dependencies, and no longer saves the entire task again. --- internal/manager/persistence/jobs.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/manager/persistence/jobs.go b/internal/manager/persistence/jobs.go index 25f89379..81f5223a 100644 --- a/internal/manager/persistence/jobs.go +++ b/internal/manager/persistence/jobs.go @@ -162,8 +162,9 @@ func (db *DB) StoreAuthoredJob(ctx context.Context, authoredJob job_compilers.Au } dbTask.Dependencies = deps - if err := tx.Save(dbTask).Error; err != nil { - return taskError(err, "unable to store dependencies of task %q", authoredTask.UUID) + subQuery := tx.Model(dbTask).Updates(Task{Dependencies: deps}) + if subQuery.Error != nil { + return taskError(subQuery.Error, "unable to store dependencies of task %q", authoredTask.UUID) } }