Merge pull request #1045 from Raven95676/master

在lifecycle新增插件资源清理逻辑
This commit is contained in:
Soulter
2025-03-29 17:53:16 +08:00
committed by GitHub
2 changed files with 11 additions and 1 deletions
+10
View File
@@ -133,6 +133,16 @@ class AstrBotCoreLifecycle:
for task in self.curr_tasks:
task.cancel()
for plugin in self.plugin_manager.context.get_all_stars():
logger.info(f"正在终止插件 {plugin.name} ...")
try:
await self.plugin_manager._terminate_plugin(plugin)
except Exception as e:
logger.warning(traceback.format_exc())
logger.warning(
f"插件 {plugin.name} 未被正常终止 {e!s}, 可能会导致资源泄露等问题。"
)
await self.provider_manager.terminate()
await self.platform_manager.terminate()
self.dashboard_shutdown_event.set()
+1 -1
View File
@@ -558,7 +558,7 @@ class PluginManager:
async def _terminate_plugin(self, star_metadata: StarMetadata):
"""终止插件,调用插件的 terminate() 和 __del__() 方法"""
logging.info(f"正在终止插件 {star_metadata.name} ...")
logger.info(f"正在终止插件 {star_metadata.name} ...")
if not star_metadata.activated:
# 说明之前已经被禁用了