Add TaskHistory.schedule method

This commit is contained in:
tcely authored and GitHub committed 2025-07-04 19:05:53 -04:00
1 parent a6ef84750c
commit d30c18dfbb
1 file changed
+21
+21
View File
@@ -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