工单脚本执行增加重试机制
This commit is contained in:
parent
19cfad5412
commit
b09e3e396a
|
@ -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),
|
||||
|
|
Loading…
Reference in New Issue