调整插件加载逻辑

This commit is contained in:
liuwei
2025-03-19 10:22:20 +08:00
parent 9e42a4690d
commit ce2032b932

View File

@@ -313,3 +313,29 @@ class PluginManager:
# 加载插件
return self.load_plugin(plugin_name)
def shutdown_plugins(self) -> bool:
"""
卸载所有插件
Returns:
是否全部成功卸载
"""
success = True
# 创建插件名称的副本因为在卸载过程中会修改self.plugins字典
plugin_names = list(self.plugins.keys())
for plugin_name in plugin_names:
if not self.unload_plugin(plugin_name):
self.LOG.error(f"卸载插件 {plugin_name} 失败")
success = False
# 清空插件模块字典
self.plugin_modules.clear()
# 确保插件字典为空
if self.plugins:
self.LOG.warning(f"插件卸载后仍有 {len(self.plugins)} 个插件残留")
success = False
return success