调整插件加载逻辑
This commit is contained in:
@@ -313,3 +313,29 @@ class PluginManager:
|
|||||||
|
|
||||||
# 加载插件
|
# 加载插件
|
||||||
return self.load_plugin(plugin_name)
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user