mirror of https://github.com/jumpserver/jumpserver
perf: Add task handler for ops job with creator assignment
parent
5b27acf4ef
commit
dd5a272cdf
|
@ -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)
|
||||
|
||||
|
|
|
@ -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())
|
||||
|
|
Loading…
Reference in New Issue