From 13a382cca25ecdb809b3d42606f5606bc9aea81e Mon Sep 17 00:00:00 2001 From: Tobias Menzel Date: Thu, 14 Dec 2023 14:44:07 +0100 Subject: [PATCH] Fix for Negative Repeat Count in Scheduler (#101) (#146) * Comment out decrement of s.repeats in scheduler to fix negative repeat count issue * Fix repeat count handling in scheduler - Reset `repeats` to -1 for values less than -1 - Decrement `repeats` by 1 if it's greater than 0 --- django_q/scheduler.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/django_q/scheduler.py b/django_q/scheduler.py index 88bd6b6..cc78454 100644 --- a/django_q/scheduler.py +++ b/django_q/scheduler.py @@ -82,7 +82,15 @@ def scheduler(broker: Broker = None): break s.next_run = next_run - s.repeats += -1 + + # Little Fix for already broken numbers + if s.repeats < -1: + s.repeats = -1 + + # Check if the value is not zero + if s.repeats > 0: + s.repeats -= 1 + # send it to the cluster; any cluster name is allowed in multi-queue scenarios # because `broker_name` is confusing, using `cluster` name is recommended and takes precedence q_options["cluster"] = s.cluster or q_options.get(