From 35963cca5fd7e38d66b56d3116fc1bdae362cff3 Mon Sep 17 00:00:00 2001 From: James Meakin <12661555+jmsmkn@users.noreply.github.com> Date: Thu, 9 Jan 2025 16:06:06 +0100 Subject: [PATCH] Add option to skip calculating ranks Prevents many celery tasks being unnecessarily created --- app/grandchallenge/challenges/tasks.py | 3 ++- app/grandchallenge/evaluation/models.py | 11 +++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/grandchallenge/challenges/tasks.py b/app/grandchallenge/challenges/tasks.py index 36b9bd809..6034a92c8 100644 --- a/app/grandchallenge/challenges/tasks.py +++ b/app/grandchallenge/challenges/tasks.py @@ -108,10 +108,11 @@ def save_challenge(): @retry_with_backoff((LockNotAvailable,)) def save_phase(): phase.save( + skip_calculate_ranks=True, update_fields=( "average_algorithm_job_duration", "compute_cost_euro_millicents", - ) + ), ) save_phase() diff --git a/app/grandchallenge/evaluation/models.py b/app/grandchallenge/evaluation/models.py index 06099dd88..f57bfe926 100644 --- a/app/grandchallenge/evaluation/models.py +++ b/app/grandchallenge/evaluation/models.py @@ -658,7 +658,7 @@ class Meta: def __str__(self): return f"{self.title} Evaluation for {self.challenge.short_name}" - def save(self, *args, **kwargs): + def save(self, *args, skip_calculate_ranks=False, **kwargs): adding = self._state.adding super().save(*args, **kwargs) @@ -694,9 +694,12 @@ def save(self, *args, **kwargs): ): self.send_give_algorithm_editors_job_view_permissions_changed_email() - on_commit( - lambda: calculate_ranks.apply_async(kwargs={"phase_pk": self.pk}) - ) + if not skip_calculate_ranks: + on_commit( + lambda: calculate_ranks.apply_async( + kwargs={"phase_pk": self.pk} + ) + ) def clean(self): super().clean()