Skip to content

Commit 7e6fbfd

Browse files
committed
fix duplicate violations on recurring tasks
1 parent dec9c5c commit 7e6fbfd

3 files changed

Lines changed: 6 additions & 11 deletions

File tree

steady_queue/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from datetime import timedelta
22
from typing import Optional
33

4-
VERSION = (0, 1, "0b6")
4+
VERSION = (0, 1, "0b7")
55

66
__version__ = ".".join(map(str, VERSION))
77

steady_queue/models/recurring_execution.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
from contextlib import contextmanager
2-
31
from django.db import models
42
from django_tasks import TaskResult
53

@@ -10,13 +8,10 @@ class RecurringExecutionQuerySet(ExecutionQuerySet):
108
def clearable(self):
119
return self.filter(job__isnull=True)
1210

13-
def create_or_insert(self, **kwargs):
14-
# TODO: wtf
15-
self.create(**kwargs)
16-
17-
@contextmanager
1811
def record(self, task_result: TaskResult, task, run_at):
19-
self.create_or_insert(job_id=task_result.id, task=task, run_at=run_at)
12+
self.update_or_create(
13+
task=task, run_at=run_at, defaults={"job_id": task_result.id}
14+
)
2015

2116
def clear_in_batches(self, batch_size=500):
2217
while True:

steady_queue/models/recurring_task.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,10 @@ def enqueue_and_record(self, run_at: datetime):
114114
args, kwargs = Arguments.deserialize_args_and_kwargs(
115115
self.arguments["arguments"]
116116
)
117-
result = self.job_class.using(
117+
task_result = self.job_class.using(
118118
queue_name=self.queue_name, priority=self.priority
119119
).enqueue(*args, **kwargs)
120-
RecurringExecution.objects.record(result, self, run_at)
120+
RecurringExecution.objects.record(task_result, self, run_at)
121121

122122
@property
123123
def previous_time(self) -> datetime:

0 commit comments

Comments
 (0)