500邮件埋点
This commit is contained in:
parent
e47c9cd0ad
commit
c12d356b34
|
@ -7,6 +7,7 @@ from rest_framework import exceptions
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.views import set_rollback
|
from rest_framework.views import set_rollback
|
||||||
import json
|
import json
|
||||||
|
from apps.utils.tasks import send_mail_task
|
||||||
|
|
||||||
|
|
||||||
# 实例化myLogger
|
# 实例化myLogger
|
||||||
|
@ -50,4 +51,5 @@ def custom_exception_hander(exc, context):
|
||||||
args = (request_id, traceback.format_exc())
|
args = (request_id, traceback.format_exc())
|
||||||
err_detail = f"{args[0]}-{args[1]}"
|
err_detail = f"{args[0]}-{args[1]}"
|
||||||
myLogger.error(err_detail)
|
myLogger.error(err_detail)
|
||||||
|
send_mail_task.delay(message=err_detail) # 500邮件通知到开发人员
|
||||||
return Response(data={'err_code': 'server_error', 'err_detail': None, 'err_msg': '服务器错误'}, status=500)
|
return Response(data={'err_code': 'server_error', 'err_detail': None, 'err_msg': '服务器错误'}, status=500)
|
||||||
|
|
|
@ -7,6 +7,14 @@ from django.conf import settings
|
||||||
# 实例化myLogger
|
# 实例化myLogger
|
||||||
myLogger = logging.getLogger('log')
|
myLogger = logging.getLogger('log')
|
||||||
|
|
||||||
|
@shared_task
|
||||||
|
def send_mail_task(**args):
|
||||||
|
from django.core.mail import send_mail
|
||||||
|
args['subject'] = args.get('subject', 'ehs_500')
|
||||||
|
args['from_email'] = args.get('from_email', settings.EMAIL_HOST_USER)
|
||||||
|
args['recipient_list'] = args.get('recipient_list', [settings.EMAIL_HOST_USER])
|
||||||
|
send_mail(**args)
|
||||||
|
|
||||||
|
|
||||||
class CustomTask(Task):
|
class CustomTask(Task):
|
||||||
"""
|
"""
|
||||||
|
@ -14,14 +22,7 @@ class CustomTask(Task):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def on_failure(self, exc, task_id, args, kwargs, einfo):
|
def on_failure(self, exc, task_id, args, kwargs, einfo):
|
||||||
myLogger.error('{0!r} failed: {1!r}'.format(task_id, exc))
|
detail = '{0!r} failed: {1!r}'.format(task_id, exc)
|
||||||
|
myLogger.error(detail)
|
||||||
|
send_mail_task.delay(subject='ehs_task_error', message=detail)
|
||||||
return super().on_failure(exc, task_id, args, kwargs, einfo)
|
return super().on_failure(exc, task_id, args, kwargs, einfo)
|
||||||
|
|
||||||
|
|
||||||
@shared_task(base=CustomTask)
|
|
||||||
def send_mail_task(**args):
|
|
||||||
from django.core.mail import send_mail
|
|
||||||
args['subject'] = args.get('subject', 'ehs_500')
|
|
||||||
args['from_email'] = args.get('from_email', settings.EMAIL_HOST_USER)
|
|
||||||
args['recipient_list'] = args.get('recipient_list', [settings.EMAIL_HOST_USER])
|
|
||||||
send_mail(**args)
|
|
||||||
|
|
|
@ -9,6 +9,7 @@ from apps.utils.tasks import CustomTask
|
||||||
from celery import shared_task
|
from celery import shared_task
|
||||||
from apps.wf.models import State, Ticket, TicketFlow, Transition
|
from apps.wf.models import State, Ticket, TicketFlow, Transition
|
||||||
import time
|
import time
|
||||||
|
from apps.utils.tasks import send_mail_task
|
||||||
|
|
||||||
myLogger = logging.getLogger('log')
|
myLogger = logging.getLogger('log')
|
||||||
|
|
||||||
|
@ -53,6 +54,7 @@ def run_task(ticket_id: str, retry_num=1):
|
||||||
myLogger.error('工作流脚本执行失败', exc_info=True)
|
myLogger.error('工作流脚本执行失败', exc_info=True)
|
||||||
script_result = False
|
script_result = False
|
||||||
script_result_msg = err_detail
|
script_result_msg = err_detail
|
||||||
|
send_mail_task.delay(subject='ehs_wf_task_error', message=err_detail) # run_task执行失败发送邮件
|
||||||
ticket = Ticket.objects.filter(id=ticket_id).first()
|
ticket = Ticket.objects.filter(id=ticket_id).first()
|
||||||
if not script_result:
|
if not script_result:
|
||||||
ticket.script_run_last_result = False
|
ticket.script_run_last_result = False
|
||||||
|
|
Loading…
Reference in New Issue