From b09e3e396a82ab3f923e84b28669dca833bd2a96 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 10 Nov 2022 09:37:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E8=84=9A=E6=9C=AC=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E5=A2=9E=E5=8A=A0=E9=87=8D=E8=AF=95=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wf/tasks.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/wf/tasks.py b/apps/wf/tasks.py index 9bd58f1a..830a1515 100644 --- a/apps/wf/tasks.py +++ b/apps/wf/tasks.py @@ -8,6 +8,7 @@ from apps.utils.sms import send_sms from apps.utils.tasks import CustomTask from celery import shared_task from apps.wf.models import State, Ticket, TicketFlow, Transition +import time myLogger = logging.getLogger('log') @@ -33,7 +34,7 @@ def send_ticket_notice(ticket_id): @shared_task(base=CustomTask) -def run_task(ticket_id: str): +def run_task(ticket_id: str, retry_num=1): ticket = Ticket.objects.get(id=ticket_id) script_result = True script_result_msg = '' @@ -44,6 +45,10 @@ def run_task(ticket_id: str): f = getattr(m, func) f(ticket) except Exception: + retry_num_new = retry_num - 1 + if retry_num_new >= 0: + time.sleep(10) + run_task(ticket_id, retry_num_new) err_detail = traceback.format_exc() myLogger.error('工作流脚本执行失败', exc_info=True) script_result = False @@ -53,7 +58,8 @@ def run_task(ticket_id: str): ticket.script_run_last_result = False ticket.save() # 记录日志 - transition_obj = Transition.objects.filter(source_state=ticket.state, is_deleted=False).first() + transition_obj = Transition.objects.filter( + source_state=ticket.state, is_deleted=False).first() TicketFlow.objects.create(ticket=ticket, state=ticket.state, participant_type=State.PARTICIPANT_TYPE_ROBOT, participant_str='func:{}'.format(script_str),