feat: send_mail_task优化

This commit is contained in:
caoqianming 2023-08-28 09:18:09 +08:00
parent f89f56f02d
commit 620351c8bf
2 changed files with 11 additions and 13 deletions

View File

@ -52,5 +52,6 @@ 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邮件通知到开发人员 if settings.DEBUG is False:
send_mail_task.delay(message=err_detail) # 500邮件通知到开发人员
return Response(data={'err_code': 'server_error', 'err_detail': err_detail if settings.DEBUG else None, 'err_msg': '服务器错误'}, status=500) return Response(data={'err_code': 'server_error', 'err_detail': err_detail if settings.DEBUG else None, 'err_msg': '服务器错误'}, status=500)

View File

@ -11,13 +11,11 @@ myLogger = logging.getLogger('log')
@shared_task @shared_task
def send_mail_task(**args): def send_mail_task(**args):
config = get_sysconfig() from django.core.mail import send_mail
if settings.DEBUG is False: args['subject'] = '{}:{}_{}_{}'.format(settings.SYS_NAME, settings.SYS_VERSION, config['base']['base_name_short'], args.get('subject', '500'))
from django.core.mail import send_mail args['from_email'] = args.get('from_email', settings.EMAIL_HOST_USER)
args['subject'] = '{}:{}_{}_{}'.format(settings.SYS_NAME, settings.SYS_VERSION, config['base']['base_name_short'], args.get('subject', '500')) args['recipient_list'] = args.get('recipient_list', [settings.EMAIL_HOST_USER])
args['from_email'] = args.get('from_email', settings.EMAIL_HOST_USER) send_mail(**args)
args['recipient_list'] = args.get('recipient_list', [settings.EMAIL_HOST_USER])
send_mail(**args)
class CustomTask(Task): class CustomTask(Task):
@ -26,8 +24,7 @@ class CustomTask(Task):
""" """
def on_failure(self, exc, task_id, args, kwargs, einfo): def on_failure(self, exc, task_id, args, kwargs, einfo):
if settings.DEBUG is False: detail = '{0!r} failed: {1!r}'.format(task_id, exc)
detail = '{0!r} failed: {1!r}'.format(task_id, exc) myLogger.error(detail)
myLogger.error(detail) send_mail_task.delay(subject='task_error', message=detail)
send_mail_task.delay(subject='task_error', message=detail) return super().on_failure(exc, task_id, args, kwargs, einfo)
return super().on_failure(exc, task_id, args, kwargs, einfo)