Migrate timer status to enum instead of int

This commit is contained in:
Stan
2026-08-13 16:53:42 +02:00
parent 97ea3c89a5
commit a8f3bfb832
6 changed files with 46 additions and 23 deletions
+2 -1
View File
@@ -6,6 +6,7 @@ import pytest
from django_q.brokers import get_broker
from django_q.conf import Conf
from django_q.enums import TimerStatus
from django_q.monitor import monitor
from django_q.pusher import pusher
from django_q.queues import Queue
@@ -67,7 +68,7 @@ def test_cached(broker):
assert task_queue.qsize() == task_count
task_queue.put("STOP")
result_queue = Queue()
worker(task_queue, result_queue, Value("f", -1))
worker(task_queue, result_queue, Value("f", TimerStatus.IDLE))
assert result_queue.qsize() == task_count
result_queue.put("STOP")
monitor(result_queue)
+11 -10
View File
@@ -15,6 +15,7 @@ from django.utils import timezone
from django_q.brokers import Broker, get_broker
from django_q.cluster import Cluster, Sentinel
from django_q.conf import Conf
from django_q.enums import TimerStatus
from django_q.humanhash import DEFAULT_WORDLIST, uuid
from django_q.models import Success, Task
from django_q.monitor import monitor, save_task
@@ -245,7 +246,7 @@ def test_cluster(broker):
assert queue_size(broker=broker) == 0
# Test work
task_queue.put("STOP")
worker(task_queue, result_queue, Value("f", -1))
worker(task_queue, result_queue, Value("f", TimerStatus.IDLE))
assert task_queue.qsize() == 0
assert result_queue.qsize() == 1
# Test monitor
@@ -272,7 +273,7 @@ def test_results(broker):
pusher(task_queue, stop_event, broker=broker)
task_queue.put("STOP")
result_queue = Queue()
worker(task_queue, result_queue, Value("f", -1))
worker(task_queue, result_queue, Value("f", TimerStatus.IDLE))
result_queue.put("STOP")
monitor(result_queue)
@@ -372,7 +373,7 @@ def test_enqueue(broker, admin_user):
assert fetch_group("test_j", count=2, wait=10) is None
# let a worker handle them
result_queue = Queue()
worker(task_queue, result_queue, Value("f", -1))
worker(task_queue, result_queue, Value("f", TimerStatus.IDLE))
assert result_queue.qsize() == task_count
result_queue.put("STOP")
# store the results
@@ -541,7 +542,7 @@ def test_recycle(broker, monkeypatch, django_assert_num_queries):
pusher(task_queue, stop_event, broker=broker)
pusher(task_queue, stop_event, broker=broker)
# worker should exit on recycle
worker(task_queue, result_queue, Value("f", -1))
worker(task_queue, result_queue, Value("f", TimerStatus.IDLE))
# check if the work has been done
assert result_queue.qsize() == 2
# save_limit test
@@ -573,7 +574,7 @@ def test_save_limit_per_func(broker, monkeypatch):
threading.Timer(3, stop_event.set).start()
for i in range(3):
pusher(task_queue, stop_event, broker=broker)
worker(task_queue, result_queue, Value("f", -1))
worker(task_queue, result_queue, Value("f", TimerStatus.IDLE))
s = Sentinel(stop_event, start_event, cluster_id=cluster_id, broker=broker)
assert start_event.is_set()
assert s.status() == Conf.STOPPED
@@ -618,7 +619,7 @@ def test_max_rss(broker, monkeypatch):
# push the task
pusher(task_queue, stop_event, broker=broker)
# worker should exit on recycle
worker(task_queue, result_queue, Value("f", -1))
worker(task_queue, result_queue, Value("f", TimerStatus.IDLE))
# check if the work has been done
assert result_queue.qsize() == 1
# save_limit test
@@ -654,7 +655,7 @@ def test_bad_secret(broker, monkeypatch):
worker(
task_queue,
result_queue,
Value("f", -1),
Value("f", TimerStatus.IDLE),
)
assert result_queue.qsize() == 0
broker.delete_queue()
@@ -838,7 +839,7 @@ class TestSignals:
event.set()
pusher(task_queue, event, broker=broker)
task_queue.put("STOP")
worker(task_queue, result_queue, Value("f", -1))
worker(task_queue, result_queue, Value("f", TimerStatus.IDLE))
result_queue.put("STOP")
monitor(result_queue, broker)
broker.delete_queue()
@@ -867,7 +868,7 @@ class TestSignals:
event.set()
pusher(task_queue, event, broker=broker)
task_queue.put("STOP")
worker(task_queue, result_queue, Value("f", -1))
worker(task_queue, result_queue, Value("f", TimerStatus.IDLE))
result_queue.put("STOP")
monitor(result_queue, broker)
broker.delete_queue()
@@ -896,7 +897,7 @@ class TestSignals:
event.set()
pusher(task_queue, event, broker=broker)
task_queue.put("STOP")
worker(task_queue, result_queue, Value("f", -1))
worker(task_queue, result_queue, Value("f", TimerStatus.IDLE))
result_queue.put("STOP")
monitor(result_queue, broker)
broker.delete_queue()
+2 -1
View File
@@ -13,6 +13,7 @@ from django.utils.timezone import is_naive
from django_q.brokers import Broker, get_broker
from django_q.conf import Conf
from django_q.enums import TimerStatus
from django_q.monitor import monitor
from django_q.pusher import pusher
from django_q.queues import Queue
@@ -222,7 +223,7 @@ def test_scheduler(broker, monkeypatch):
task_queue.put("STOP")
# let a worker handle them
result_queue = Queue()
worker(task_queue, result_queue, Value("b", -1))
worker(task_queue, result_queue, Value("b", TimerStatus.IDLE))
assert result_queue.qsize() == 1
result_queue.put("STOP")
# store the results