From f6b5994fe57cb1c5a4b41a85855ba5992a4ca170 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Thu, 31 Aug 2023 16:13:19 +0800 Subject: [PATCH] fix plugin manager --- app/core/plugin.py | 7 +++++++ app/plugins/__init__.py | 14 +++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/core/plugin.py b/app/core/plugin.py index 80bdddae..a719acdf 100644 --- a/app/core/plugin.py +++ b/app/core/plugin.py @@ -37,6 +37,7 @@ class PluginManager(metaclass=Singleton): """ 启动加载插件 """ + # 扫描插件目录 plugins = ModuleHelper.load( "app.plugins", @@ -80,8 +81,14 @@ class PluginManager(metaclass=Singleton): """ # 停止所有插件 for plugin in self._running_plugins.values(): + # 关闭数据库 + plugin.close() + # 关闭插件 if hasattr(plugin, "stop_service"): plugin.stop_service() + # 清空对像 + self._plugins = {} + self._running_plugins = {} def get_plugin_config(self, pid: str) -> dict: """ diff --git a/app/plugins/__init__.py b/app/plugins/__init__.py index 7399ece4..60457c71 100644 --- a/app/plugins/__init__.py +++ b/app/plugins/__init__.py @@ -17,9 +17,7 @@ class PluginChian(ChainBase): """ 插件处理链 """ - - def process(self, *args, **kwargs): - pass + pass class _PluginBase(metaclass=ABCMeta): @@ -185,3 +183,13 @@ class _PluginBase(metaclass=ABCMeta): channel=channel, mtype=mtype, title=title, text=text, image=image, link=link, userid=userid )) + + def close(self): + """ + 关闭数据库连接 + """ + if self.db: + self.db.close() + + def __del__(self): + self.close()