feat:服务异常时推送前台消息
This commit is contained in:
@ -113,6 +113,9 @@ class ChainBase(metaclass=ABCMeta):
|
|||||||
except Exception as err:
|
except Exception as err:
|
||||||
logger.error(
|
logger.error(
|
||||||
f"运行模块 {method} 出错:{module.__class__.__name__} - {str(err)}\n{traceback.format_exc()}")
|
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
|
return result
|
||||||
|
|
||||||
def recognize_media(self, meta: MetaBase = None,
|
def recognize_media(self, meta: MetaBase = None,
|
||||||
|
@ -14,6 +14,7 @@ from app.core.config import settings
|
|||||||
from app.core.event import Event as ManagerEvent
|
from app.core.event import Event as ManagerEvent
|
||||||
from app.core.event import eventmanager, EventManager
|
from app.core.event import eventmanager, EventManager
|
||||||
from app.core.plugin import PluginManager
|
from app.core.plugin import PluginManager
|
||||||
|
from app.helper.message import MessageHelper
|
||||||
from app.helper.thread import ThreadHelper
|
from app.helper.thread import ThreadHelper
|
||||||
from app.log import logger
|
from app.log import logger
|
||||||
from app.scheduler import Scheduler
|
from app.scheduler import Scheduler
|
||||||
@ -51,6 +52,8 @@ class Command(metaclass=Singleton):
|
|||||||
self.chain = CommandChian()
|
self.chain = CommandChian()
|
||||||
# 定时服务管理
|
# 定时服务管理
|
||||||
self.scheduler = Scheduler()
|
self.scheduler = Scheduler()
|
||||||
|
# 消息管理器
|
||||||
|
self.messagehelper = MessageHelper()
|
||||||
# 线程管理器
|
# 线程管理器
|
||||||
self.threader = ThreadHelper()
|
self.threader = ThreadHelper()
|
||||||
# 内置命令
|
# 内置命令
|
||||||
@ -213,6 +216,9 @@ class Command(metaclass=Singleton):
|
|||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"事件处理出错:{str(e)} - {traceback.format_exc()}")
|
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],
|
def __run_command(self, command: Dict[str, any],
|
||||||
data_str: str = "",
|
data_str: str = "",
|
||||||
@ -321,6 +327,9 @@ class Command(metaclass=Singleton):
|
|||||||
logger.info(f"{command.get('description')} 执行完成")
|
logger.info(f"{command.get('description')} 执行完成")
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
logger.error(f"执行命令 {cmd} 出错:{str(err)} - {traceback.format_exc()}")
|
logger.error(f"执行命令 {cmd} 出错:{str(err)} - {traceback.format_exc()}")
|
||||||
|
self.messagehelper.put(title=f"执行命令 {cmd} 出错",
|
||||||
|
message=str(err),
|
||||||
|
role="system")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def send_plugin_event(etype: EventType, data: dict) -> None:
|
def send_plugin_event(etype: EventType, data: dict) -> None:
|
||||||
|
@ -325,6 +325,9 @@ class Scheduler(metaclass=Singleton):
|
|||||||
job["func"](*args, **kwargs)
|
job["func"](*args, **kwargs)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"定时任务 {job_id} 执行失败:{str(e)} - {traceback.format_exc()}")
|
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:
|
with self._lock:
|
||||||
try:
|
try:
|
||||||
@ -375,6 +378,9 @@ class Scheduler(metaclass=Singleton):
|
|||||||
logger.info(f"注册插件{plugin_name}服务:{service['name']} - {service['trigger']}")
|
logger.info(f"注册插件{plugin_name}服务:{service['name']} - {service['trigger']}")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"注册插件{plugin_name}服务失败:{str(e)} - {service}")
|
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):
|
def remove_plugin_job(self, pid: str):
|
||||||
"""
|
"""
|
||||||
@ -396,6 +402,9 @@ class Scheduler(metaclass=Singleton):
|
|||||||
logger.info(f"移除插件服务({plugin_name}):{service.get('name')}")
|
logger.info(f"移除插件服务({plugin_name}):{service.get('name')}")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"移除插件服务失败:{str(e)} - {job_id}: {service}")
|
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]:
|
def list(self) -> List[schemas.ScheduleInfo]:
|
||||||
"""
|
"""
|
||||||
|
Reference in New Issue
Block a user