Projet

Général

Profil

0001-BaseResource-jobs-reduce-transaction-number-66459.patch

Pierre Ducroquet, 21 juin 2022 17:49

Télécharger (1,26 ko)

Voir les différences:

Subject: [PATCH] BaseResource::jobs: reduce transaction number (#66459)

Instead of having a new transaction for each run, even if most of the time there won't be
anything to run, it's faster and lighter for the server to have an out of transaction check
first.
 passerelle/base/models.py | 11 +++++++++++
 1 file changed, 11 insertions(+)
passerelle/base/models.py
591 591
            skip_locked = {}
592 592
        skipped_jobs = []
593 593
        while True:
594
            # optimistic skip
595
            if (
596
                not self.jobs_set()
597
                .exclude(pk__in=skipped_jobs)
598
                .filter(
599
                    Q(after_timestamp__isnull=True) | Q(after_timestamp__lt=timezone.now()),
600
                    status='registered',
601
                )
602
                .exists()
603
            ):
604
                break
594 605
            with transaction.atomic():
595 606
                job = (
596 607
                    self.jobs_set()
597
-