Add TaskHistory.schedule method
This commit is contained in:
1 parent
a6ef84750c
commit
d30c18dfbb
1 file changed
+21
@@ -6,6 +6,23 @@ from django.utils import timezone
|
||||
from ..json import JSONEncoder
|
||||
# from common.json import JSONEncoder
|
||||
|
||||
|
||||
def set_verbose_name(task_wrapper, /, *args, vn_args=(), vn_fmt=None, **kwargs):
|
||||
assert vn_fmt is not None, 'vn_fmt is required'
|
||||
if vn_fmt is None:
|
||||
return False
|
||||
result = task_wrapper.schedule(*args, **kwargs)
|
||||
try:
|
||||
task_history = TaskHistory.objects.get(task_id=str(result.id))
|
||||
except TaskHistory.DoesNotExist:
|
||||
pass
|
||||
else:
|
||||
task_history.verbose_name = str(vn_fmt).format(*vn_args)
|
||||
task_history.save()
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
class TaskHistoryQuerySet(models.QuerySet):
|
||||
|
||||
def failed(self, within=None):
|
||||
@@ -73,6 +90,10 @@ class TaskHistory(models.Model):
|
||||
|
||||
objects = TaskHistoryQuerySet.as_manager()
|
||||
|
||||
@classmethod
|
||||
def schedule(cls, task_wrapper, /, *args, vn_args=(), vn_fmt=None, **kwargs):
|
||||
return set_verbose_name(task_wrapper, *args, vn_fmt=vn_fmt, vn_args=vn_args, **kwargs)
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
self.queue = self.queue or None
|
||||
self.verbose_name = self.verbose_name or None
|
||||
|
||||
Reference in new issue
Block a user