调整插件加载逻辑
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user