perf: Add task handler for ops job with creator assignment

pull/14433/head
wangruidong 2024-11-07 18:39:39 +08:00 committed by Bryan
parent 5b27acf4ef
commit dd5a272cdf
2 changed files with 13 additions and 1 deletions

View File

@ -105,6 +105,17 @@ class CeleryTaskExecution(models.Model):
def is_success(self):
return self.state == 'SUCCESS'
def set_creator_if_need(self):
from ops.models import Job
if self.creator:
return
if self.name == 'ops.tasks.run_ops_job' and self.args:
job_id = self.args[0]
job = Job.objects.filter(id=job_id).first()
if job:
self.creator = job.creator
self.save()
def __str__(self):
return "{}: {}".format(self.name, self.id)

View File

@ -158,7 +158,8 @@ def task_sent_handler(headers=None, body=None, **kwargs):
with transaction.atomic():
try:
CeleryTaskExecution.objects.create(**data)
task_execution = CeleryTaskExecution.objects.create(**data)
task_execution.set_creator_if_need()
except Exception as e:
logger.error('Create celery task execution error: {}'.format(e))
CeleryTask.objects.filter(name=task).update(date_last_publish=timezone.now())