Skip to content

Commit 67d296a

Browse files
committed
Make STATES backwards compatible
1 parent b478dc6 commit 67d296a

File tree

3 files changed

+32
-32
lines changed

3 files changed

+32
-32
lines changed

django_dbq/management/commands/worker.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,20 @@ def process_job(queue_name):
2323
return
2424

2525
logger.info('Processing job: name="%s" queue="%s" id=%s state=%s next_task=%s', job.name, queue_name, job.pk, job.state, job.next_task)
26-
job.state = Job.State.PROCESSING
26+
job.state = Job.STATES.PROCESSING
2727
job.save()
2828

2929
try:
3030
task_function = import_string(job.next_task)
3131
task_function(job)
3232
job.update_next_task()
3333
if not job.next_task:
34-
job.state = Job.State.COMPLETE
34+
job.state = Job.STATES.COMPLETE
3535
else:
36-
job.state = Job.State.READY
36+
job.state = Job.STATES.READY
3737
except Exception as exception:
3838
logger.exception("Job id=%s failed", job.pk)
39-
job.state = Job.State.FAILED
39+
job.state = Job.STATES.FAILED
4040

4141
failure_hook_name = job.get_failure_hook_name()
4242
if failure_hook_name:

django_dbq/models.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,37 +45,37 @@ def delete_old(self):
4545
"""
4646
Delete all jobs older than DELETE_JOBS_AFTER_HOURS
4747
"""
48-
delete_jobs_in_states = [Job.State.FAILED, Job.State.COMPLETE]
48+
delete_jobs_in_states = [Job.STATES.FAILED, Job.STATES.COMPLETE]
4949
delete_jobs_created_before = datetime.datetime.utcnow() - datetime.timedelta(hours=DELETE_JOBS_AFTER_HOURS)
5050
logger.info("Deleting all job in states %s created before %s", ", ".join(delete_jobs_in_states), delete_jobs_created_before.isoformat())
5151
Job.objects.filter(state__in=delete_jobs_in_states, created__lte=delete_jobs_created_before).delete()
5252

5353
def to_process(self, queue_name):
54-
return self.select_for_update().filter(queue_name=queue_name, state__in=(Job.State.READY, Job.State.NEW))
54+
return self.select_for_update().filter(queue_name=queue_name, state__in=(Job.STATES.READY, Job.STATES.NEW))
5555

5656

5757
class Job(models.Model):
5858

59-
class State:
59+
class STATES:
6060
NEW = 'NEW'
6161
READY = 'READY'
6262
PROCESSING = 'PROCESSING'
6363
FAILED = 'FAILED'
6464
COMPLETE = 'COMPLETE'
6565

66-
STATES = [
67-
(State.NEW, "NEW"),
68-
(State.READY, "READY"),
69-
(State.PROCESSING, "PROCESSING"),
70-
(State.FAILED, "FAILED"),
71-
(State.COMPLETE, "COMPLETE"),
66+
STATE_CHOICES = [
67+
(STATES.NEW, "NEW"),
68+
(STATES.READY, "READY"),
69+
(STATES.PROCESSING, "PROCESSING"),
70+
(STATES.FAILED, "FAILED"),
71+
(STATES.COMPLETE, "COMPLETE"),
7272
]
7373

7474
id = UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
7575
created = models.DateTimeField(auto_now_add=True, db_index=True)
7676
modified = models.DateTimeField(auto_now=True)
7777
name = models.CharField(max_length=100)
78-
state = models.CharField(max_length=20, choices=STATES, default=State.NEW, db_index=True)
78+
state = models.CharField(max_length=20, choices=STATE_CHOICES, default=STATES.NEW, db_index=True)
7979
next_task = models.CharField(max_length=100, blank=True)
8080
workspace = JSONField(null=True)
8181
queue_name = models.CharField(max_length=20, default='default', db_index=True)

django_dbq/tests.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -120,27 +120,27 @@ class JobTestCase(TestCase):
120120

121121
def test_create_job(self):
122122
job = Job(name='testjob')
123-
self.assertEqual(job.state, Job.State.NEW)
123+
self.assertEqual(job.state, Job.STATES.NEW)
124124

125125
def test_create_job_with_queue(self):
126126
job = Job(name='testjob', queue_name='lol')
127-
self.assertEqual(job.state, Job.State.NEW)
127+
self.assertEqual(job.state, Job.STATES.NEW)
128128
self.assertEqual(job.queue_name, 'lol')
129129

130130
def test_get_next_ready_job(self):
131131
self.assertTrue(Job.objects.get_ready_or_none('default') is None)
132132

133-
Job.objects.create(name='testjob', state=Job.State.READY)
134-
Job.objects.create(name='testjob', state=Job.State.PROCESSING)
135-
expected = Job.objects.create(name='testjob', state=Job.State.READY)
133+
Job.objects.create(name='testjob', state=Job.STATES.READY)
134+
Job.objects.create(name='testjob', state=Job.STATES.PROCESSING)
135+
expected = Job.objects.create(name='testjob', state=Job.STATES.READY)
136136
expected.created = datetime.now() - timedelta(minutes=1)
137137
expected.save()
138138

139139
self.assertEqual(Job.objects.get_ready_or_none('default'), expected)
140140

141141
def test_gets_jobs_in_priority_order(self):
142142
job_1 = Job.objects.create(name='testjob')
143-
job_2 = Job.objects.create(name='testjob', state=Job.State.PROCESSING)
143+
job_2 = Job.objects.create(name='testjob', state=Job.STATES.PROCESSING)
144144
job_3 = Job.objects.create(name='testjob', priority=3)
145145
job_4 = Job.objects.create(name='testjob', priority=2)
146146
self.assertEqual({
@@ -153,7 +153,7 @@ def test_gets_jobs_in_priority_order(self):
153153

154154
def test_gets_jobs_in_negative_priority_order(self):
155155
job_1 = Job.objects.create(name='testjob')
156-
job_2 = Job.objects.create(name='testjob', state=Job.State.PROCESSING)
156+
job_2 = Job.objects.create(name='testjob', state=Job.STATES.PROCESSING)
157157
job_3 = Job.objects.create(name='testjob', priority=-2)
158158
job_4 = Job.objects.create(name='testjob', priority=1)
159159
self.assertEqual({
@@ -166,7 +166,7 @@ def test_gets_jobs_in_negative_priority_order(self):
166166

167167
def test_gets_jobs_in_priority_and_date_order(self):
168168
job_1 = Job.objects.create(name='testjob', priority=3)
169-
job_2 = Job.objects.create(name='testjob', state=Job.State.PROCESSING, priority=3)
169+
job_2 = Job.objects.create(name='testjob', state=Job.STATES.PROCESSING, priority=3)
170170
job_3 = Job.objects.create(name='testjob', priority=3)
171171
job_4 = Job.objects.create(name='testjob', priority=3)
172172
self.assertEqual({
@@ -187,9 +187,9 @@ def test_get_next_ready_job_created(self):
187187
"""
188188
self.assertTrue(Job.objects.get_ready_or_none('default') is None)
189189

190-
Job.objects.create(name='testjob', state=Job.State.NEW)
191-
Job.objects.create(name='testjob', state=Job.State.PROCESSING)
192-
expected = Job.objects.create(name='testjob', state=Job.State.NEW)
190+
Job.objects.create(name='testjob', state=Job.STATES.NEW)
191+
Job.objects.create(name='testjob', state=Job.STATES.PROCESSING)
192+
expected = Job.objects.create(name='testjob', state=Job.STATES.NEW)
193193
expected.created = datetime.now() - timedelta(minutes=1)
194194
expected.save()
195195

@@ -217,7 +217,7 @@ def test_process_job(self):
217217
job = Job.objects.create(name='testjob')
218218
process_job('default')
219219
job = Job.objects.get()
220-
self.assertEqual(job.state, Job.State.COMPLETE)
220+
self.assertEqual(job.state, Job.STATES.COMPLETE)
221221

222222
def test_process_job_wrong_queue(self):
223223
"""
@@ -226,7 +226,7 @@ def test_process_job_wrong_queue(self):
226226
job = Job.objects.create(name='testjob', queue_name='lol')
227227
process_job('default')
228228
job = Job.objects.get()
229-
self.assertEqual(job.state, Job.State.NEW)
229+
self.assertEqual(job.state, Job.STATES.NEW)
230230

231231

232232
@override_settings(JOBS={'testjob': {'tasks': ['django_dbq.tests.test_task'], 'creation_hook': 'django_dbq.tests.creation_hook'}})
@@ -253,7 +253,7 @@ def test_failure_hook(self):
253253
job = Job.objects.create(name='testjob')
254254
process_job('default')
255255
job = Job.objects.get()
256-
self.assertEqual(job.state, Job.State.FAILED)
256+
self.assertEqual(job.state, Job.STATES.FAILED)
257257
self.assertEqual(job.workspace['output'], 'failure hook ran')
258258

259259

@@ -263,19 +263,19 @@ class DeleteOldJobsTestCase(TestCase):
263263
def test_delete_old_jobs(self):
264264
two_days_ago = datetime.utcnow() - timedelta(days=2)
265265

266-
j1 = Job.objects.create(name='testjob', state=Job.State.COMPLETE)
266+
j1 = Job.objects.create(name='testjob', state=Job.STATES.COMPLETE)
267267
j1.created = two_days_ago
268268
j1.save()
269269

270-
j2 = Job.objects.create(name='testjob', state=Job.State.FAILED)
270+
j2 = Job.objects.create(name='testjob', state=Job.STATES.FAILED)
271271
j2.created = two_days_ago
272272
j2.save()
273273

274-
j3 = Job.objects.create(name='testjob', state=Job.State.NEW)
274+
j3 = Job.objects.create(name='testjob', state=Job.STATES.NEW)
275275
j3.created = two_days_ago
276276
j3.save()
277277

278-
j4 = Job.objects.create(name='testjob', state=Job.State.COMPLETE)
278+
j4 = Job.objects.create(name='testjob', state=Job.STATES.COMPLETE)
279279

280280
Job.objects.delete_old()
281281

0 commit comments

Comments
 (0)