From 74980911fed7bd2b7bede57b4b494b2b6a66b36d Mon Sep 17 00:00:00 2001 From: jxxghp Date: Wed, 29 May 2024 16:28:17 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E7=B3=BB=E7=BB=9F=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E6=97=B6=E5=8F=91=E5=87=BA=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/chain/__init__.py | 10 ++++++++++ app/command.py | 10 ++++++++++ app/scheduler.py | 12 ++++++++++++ app/schemas/types.py | 2 ++ 4 files changed, 34 insertions(+) diff --git a/app/chain/__init__.py b/app/chain/__init__.py index 873030cd..8d5afe07 100644 --- a/app/chain/__init__.py +++ b/app/chain/__init__.py @@ -121,6 +121,16 @@ class ChainBase(metaclass=ABCMeta): self.messagehelper.put(title=f"{module_name}发生了错误", message=str(err), role="system") + self.eventmanager.send_event( + EventType.SystemError, + { + "type": "module", + "module_name": module_name, + "module_method": method, + "error": str(err), + "traceback": traceback.format_exc() + } + ) return result def recognize_media(self, meta: MetaBase = None, diff --git a/app/command.py b/app/command.py index 72bad0f8..64232342 100644 --- a/app/command.py +++ b/app/command.py @@ -224,6 +224,16 @@ class Command(metaclass=Singleton): self.messagehelper.put(title=f"{event.event_type} 事件处理出错", message=f"{class_name}.{method_name}:{str(e)}", role="system") + self.eventmanager.send_event( + EventType.SystemError, + { + "type": "event", + "event_type": event.event_type, + "event_handle": f"{class_name}.{method_name}", + "error": str(e), + "traceback": traceback.format_exc() + } + ) def __run_command(self, command: Dict[str, any], data_str: str = "", diff --git a/app/scheduler.py b/app/scheduler.py index 8419a013..4cd71881 100644 --- a/app/scheduler.py +++ b/app/scheduler.py @@ -18,10 +18,12 @@ from app.chain.tmdb import TmdbChain from app.chain.torrents import TorrentsChain from app.chain.transfer import TransferChain from app.core.config import settings +from app.core.event import EventManager from app.core.plugin import PluginManager from app.helper.sites import SitesHelper from app.log import logger from app.schemas import Notification, NotificationType +from app.schemas.types import EventType from app.utils.singleton import Singleton from app.utils.timer import TimerUtils @@ -370,6 +372,16 @@ class Scheduler(metaclass=Singleton): SchedulerChain().messagehelper.put(title=f"{job_name} 执行失败", message=str(e), role="system") + EventManager().send_event( + EventType.SystemError, + { + "type": "scheduler", + "scheduler_id": job_id, + "scheduler_name": job_name, + "error": str(e), + "traceback": traceback.format_exc() + } + ) # 运行结束 with self._lock: try: diff --git a/app/schemas/types.py b/app/schemas/types.py index 9e470597..1a91ac4b 100644 --- a/app/schemas/types.py +++ b/app/schemas/types.py @@ -46,6 +46,8 @@ class EventType(Enum): SubscribeAdded = "subscribe.added" # 订阅已完成 SubscribeComplete = "subscribe.complete" + # 系统错误 + SystemError = "system.error" # 系统配置Key字典