From b25e63f55794d1468bd98ecb9ad212acc87e1e28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Tue, 21 Mar 2023 10:44:28 +0100 Subject: [PATCH] Job deletion: avoid looping over entire list of jobs when queue full When there are more job deletion requests than can be kept in the queue, just stop trying to queue them. --- internal/manager/job_deleter/job_deleter.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/manager/job_deleter/job_deleter.go b/internal/manager/job_deleter/job_deleter.go index 9fb7e2d0..5f45447f 100644 --- a/internal/manager/job_deleter/job_deleter.go +++ b/internal/manager/job_deleter/job_deleter.go @@ -126,13 +126,14 @@ func (s *Service) queuePendingDeletions(ctx context.Context) { return } +queueLoop: for _, jobUUID := range jobUUIDs { select { case s.queue <- jobUUID: log.Debug().Str("job", jobUUID).Msg("job deleter: job queued for deletion") case <-time.After(100 * time.Millisecond): log.Info().Msg("job deleter: job deletion queue is full") - break + break queueLoop } } }