feat: base 增加自定义的thread以记录日志或发送邮件
This commit is contained in:
parent
436719d9ff
commit
ffc9f0ee4d
|
@ -0,0 +1,23 @@
|
||||||
|
import threading
|
||||||
|
import logging
|
||||||
|
from apps.utils.tasks import send_mail_task
|
||||||
|
import traceback
|
||||||
|
|
||||||
|
logger = logging.getLogger('log')
|
||||||
|
|
||||||
|
class MyThread(threading.Thread):
|
||||||
|
def __init__(self, log_err=False, send_err=False):
|
||||||
|
super().__init__()
|
||||||
|
self.send_err = send_err
|
||||||
|
self.log_err = log_err
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
try:
|
||||||
|
if self._target:
|
||||||
|
self._target(*self._args, **self._kwargs)
|
||||||
|
except Exception as e:
|
||||||
|
if self.log_err:
|
||||||
|
logger.error(f"Thread error: {e}", exc_info=False)
|
||||||
|
if self.send_err:
|
||||||
|
send_mail_task.delay(message=traceback.format_exc())
|
||||||
|
raise
|
Loading…
Reference in New Issue