fix plugin initializer

This commit is contained in:
jxxghp
2025-05-13 21:37:10 +08:00
parent 7be2910809
commit 04ce774c22
3 changed files with 17 additions and 11 deletions
+3 -2
View File
@@ -5,7 +5,7 @@ from fastapi import FastAPI
from app.startup.workflow_initializer import init_workflow, stop_workflow from app.startup.workflow_initializer import init_workflow, stop_workflow
from app.startup.modules_initializer import shutdown_modules, start_modules from app.startup.modules_initializer import shutdown_modules, start_modules
from app.startup.plugins_initializer import init_plugins_async from app.startup.plugins_initializer import init_plugins_async, stop_plugins
from app.startup.routers_initializer import init_routers from app.startup.routers_initializer import init_routers
@@ -40,4 +40,5 @@ async def lifespan(app: FastAPI):
shutdown_modules(app) shutdown_modules(app)
# 关闭工作流 # 关闭工作流
stop_workflow(app) stop_workflow(app)
# 关闭插件
stop_plugins()
-6
View File
@@ -18,7 +18,6 @@ except ImportError as e:
sys.exit(1) sys.exit(1)
from app.core.event import EventManager from app.core.event import EventManager
from app.core.plugin import PluginManager
from app.helper.thread import ThreadHelper from app.helper.thread import ThreadHelper
from app.helper.display import DisplayHelper from app.helper.display import DisplayHelper
from app.helper.resource import ResourceHelper from app.helper.resource import ResourceHelper
@@ -117,9 +116,6 @@ def shutdown_modules(_: FastAPI):
global_vars.stop_system() global_vars.stop_system()
# 停止模块 # 停止模块
ModuleManager().stop() ModuleManager().stop()
# 停止插件
PluginManager().stop()
PluginManager().stop_monitor()
# 停止事件消费 # 停止事件消费
EventManager().stop() EventManager().stop()
# 停止虚拟显示 # 停止虚拟显示
@@ -156,8 +152,6 @@ def start_modules(_: FastAPI):
ModuleManager() ModuleManager()
# 启动事件消费 # 启动事件消费
EventManager().start() EventManager().start()
# 加载插件
PluginManager().start()
# 启动监控任务 # 启动监控任务
Monitor() Monitor()
# 启动定时服务 # 启动定时服务
+14 -3
View File
@@ -25,9 +25,8 @@ async def init_plugins_async():
# 继续执行后续的插件初始化步骤 # 继续执行后续的插件初始化步骤
logger.info("正在初始化所有插件") logger.info("正在初始化所有插件")
# 为避免初始化插件异常,这里所有插件都进行初始化 # 安装完成后初始化插件
# 安装完成后重新初始化插件 plugin_manager.start()
plugin_manager.init_config()
# 插件启动后注册后台任务 # 插件启动后注册后台任务
scheduler.init_plugin_jobs() scheduler.init_plugin_jobs()
# 插件启动后注册菜单命令 # 插件启动后注册菜单命令
@@ -61,3 +60,15 @@ def register_plugin_api():
""" """
from app.api.endpoints import plugin from app.api.endpoints import plugin
plugin.register_plugin_api() plugin.register_plugin_api()
def stop_plugins():
"""
停止插件
"""
try:
plugin_manager = PluginManager()
plugin_manager.stop()
plugin_manager.stop_monitor()
except Exception as e:
logger.error(f"停止插件时发生错误:{e}", exc_info=True)