From ffc9f0ee4d55418160f66faacfdb7a12306e0ad9 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Thu, 4 Jul 2024 09:45:19 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20base=20=E5=A2=9E=E5=8A=A0=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E7=9A=84thread=E4=BB=A5=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=88=96=E5=8F=91=E9=80=81=E9=82=AE=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/utils/thread.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 apps/utils/thread.py diff --git a/apps/utils/thread.py b/apps/utils/thread.py new file mode 100644 index 00000000..bd47c8b4 --- /dev/null +++ b/apps/utils/thread.py @@ -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 \ No newline at end of file