More efficient SQL query to compute import batch status
This commit is contained in:
parent
e29cfb7301
commit
d98c33e5ed
|
@ -507,6 +507,8 @@ class ImportBatch(models.Model):
|
|||
def update_status(self):
|
||||
old_status = self.status
|
||||
self.status = utils.compute_status(self.jobs.all())
|
||||
if self.status == old_status:
|
||||
return
|
||||
self.save(update_fields=['status'])
|
||||
if self.status != old_status and self.status == 'finished':
|
||||
from . import tasks
|
||||
|
|
|
@ -53,10 +53,11 @@ def guess_mimetype(f):
|
|||
|
||||
|
||||
def compute_status(jobs):
|
||||
errored = any([job.status == 'errored' for job in jobs])
|
||||
statuses = jobs.values_list('status', flat=True).distinct()
|
||||
errored = any([status == 'errored' for status in statuses])
|
||||
if errored:
|
||||
return 'errored'
|
||||
pending = any([job.status == 'pending' for job in jobs])
|
||||
pending = any([status == 'pending' for status in statuses])
|
||||
if pending:
|
||||
return 'pending'
|
||||
return 'finished'
|
||||
|
|
Loading…
Reference in New Issue