feat:服务异常时推送前台消息

This commit is contained in:
jxxghp
2024-05-14 10:08:07 +08:00
parent bd6d6b6882
commit ae839235eb
3 changed files with 21 additions and 0 deletions

View File

@ -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,

View File

@ -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:

View File

@ -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]:
"""