From ae839235eb69aa7824d402014bc0e07b13373ce5 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Tue, 14 May 2024 10:08:07 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E6=9C=8D=E5=8A=A1=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E6=97=B6=E6=8E=A8=E9=80=81=E5=89=8D=E5=8F=B0=E6=B6=88?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/chain/__init__.py | 3 +++ app/command.py | 9 +++++++++ app/scheduler.py | 9 +++++++++ 3 files changed, 21 insertions(+) diff --git a/app/chain/__init__.py b/app/chain/__init__.py index 06c9dc61..6e71765e 100644 --- a/app/chain/__init__.py +++ b/app/chain/__init__.py @@ -113,6 +113,9 @@ class ChainBase(metaclass=ABCMeta): except Exception as err: logger.error( f"运行模块 {method} 出错:{module.__class__.__name__} - {str(err)}\n{traceback.format_exc()}") + self.messagehelper.put(title=f"{module.__class__.__name__} 模块执行出错", + message=str(err), + role="system") return result def recognize_media(self, meta: MetaBase = None, diff --git a/app/command.py b/app/command.py index 72986603..3010f7bb 100644 --- a/app/command.py +++ b/app/command.py @@ -14,6 +14,7 @@ from app.core.config import settings from app.core.event import Event as ManagerEvent from app.core.event import eventmanager, EventManager from app.core.plugin import PluginManager +from app.helper.message import MessageHelper from app.helper.thread import ThreadHelper from app.log import logger from app.scheduler import Scheduler @@ -51,6 +52,8 @@ class Command(metaclass=Singleton): self.chain = CommandChian() # 定时服务管理 self.scheduler = Scheduler() + # 消息管理器 + self.messagehelper = MessageHelper() # 线程管理器 self.threader = ThreadHelper() # 内置命令 @@ -213,6 +216,9 @@ class Command(metaclass=Singleton): ) except Exception as e: logger.error(f"事件处理出错:{str(e)} - {traceback.format_exc()}") + self.messagehelper.put(title=f"{event.event_type} 事件处理出错", + message=str(e), + role="system") def __run_command(self, command: Dict[str, any], data_str: str = "", @@ -321,6 +327,9 @@ class Command(metaclass=Singleton): logger.info(f"{command.get('description')} 执行完成") except Exception as err: logger.error(f"执行命令 {cmd} 出错:{str(err)} - {traceback.format_exc()}") + self.messagehelper.put(title=f"执行命令 {cmd} 出错", + message=str(err), + role="system") @staticmethod def send_plugin_event(etype: EventType, data: dict) -> None: diff --git a/app/scheduler.py b/app/scheduler.py index fcf583d6..df9e919f 100644 --- a/app/scheduler.py +++ b/app/scheduler.py @@ -325,6 +325,9 @@ class Scheduler(metaclass=Singleton): job["func"](*args, **kwargs) except Exception as e: logger.error(f"定时任务 {job_id} 执行失败:{str(e)} - {traceback.format_exc()}") + SchedulerChain().messagehelper.put(title=f"定时任务 {job_id} 执行失败", + message=str(e), + role="system") # 运行结束 with self._lock: try: @@ -375,6 +378,9 @@ class Scheduler(metaclass=Singleton): logger.info(f"注册插件{plugin_name}服务:{service['name']} - {service['trigger']}") except Exception as e: logger.error(f"注册插件{plugin_name}服务失败:{str(e)} - {service}") + SchedulerChain().messagehelper.put(title=f"插件 {plugin_name} 服务注册失败", + message=str(e), + role="system") def remove_plugin_job(self, pid: str): """ @@ -396,6 +402,9 @@ class Scheduler(metaclass=Singleton): logger.info(f"移除插件服务({plugin_name}):{service.get('name')}") except Exception as e: logger.error(f"移除插件服务失败:{str(e)} - {job_id}: {service}") + SchedulerChain().messagehelper.put(title=f"插件 {plugin_name} 服务移除失败", + message=str(e), + role="system") def list(self) -> List[schemas.ScheduleInfo]: """