开启关闭任务优化

This commit is contained in:
caoqianming 2023-02-11 17:50:49 +08:00
parent 870d87b44d
commit 5a25bfe343
2 changed files with 10 additions and 16 deletions

View File

@ -103,11 +103,7 @@ def opl_start(ticket: Ticket):
def start_mtask(opl: Opl):
if opl.mtask_uid:
# 先关闭
close_mtask(opl.mtask_uid)
opl.mtask_uid = None
opl.save()
close_mtask(opl)
op = opl.operation
mtask_uid = None
vc_codes = []
@ -122,13 +118,18 @@ def start_mtask(opl: Opl):
return dict(vc_codes=vc_codes, mtask_uid=mtask_uid)
def close_mtask(task_id: str):
def close_mtask(opl: Opl):
"""关闭celery任务
"""
from celery.app.control import Control
from server.celery import app
qs = TaskResult.objects.filter(task_args__contains=opl.id, status__in=['PENDING', 'RECEIVED', 'STARTED'])
if qs:
celery_control = Control(app=app)
celery_control.revoke(task_id, terminate=True)
for i in qs:
celery_control.revoke(i.task_id, terminate=True)
opl.mtask_uid = None
opl.save()
def opl_end(ticket: Ticket):

View File

@ -128,14 +128,7 @@ class OplViewSet(CustomModelViewSet):
停止作业监控
"""
obj = self.get_object()
if obj.mtask_uid:
close_mtask(obj.mtask_uid)
from django_celery_results.models import TaskResult
qs = TaskResult.objects.filter(task_args__contains=obj.id, status__in=['PENDING', 'RECEIVED', 'STARTED'])
for i in qs:
close_mtask(i.task_id)
obj.mtask_uid = None
obj.save()
close_mtask(obj)
return Response()