feat:线上插件多线程加载

This commit is contained in:
jxxghp 2024-03-21 21:30:26 +08:00
parent 761f1e7a4b
commit 92a5b3d227

View File

@ -119,13 +119,13 @@ class PluginManager(metaclass=Singleton):
""" """
if SystemUtils.is_frozen(): if SystemUtils.is_frozen():
return return
logger.info("开始安装在线插件...") logger.info("开始安装第三方插件...")
# 已安装插件 # 已安装插件
install_plugins = self.systemconfig.get(SystemConfigKey.UserInstalledPlugins) or [] install_plugins = self.systemconfig.get(SystemConfigKey.UserInstalledPlugins) or []
# 在线插件 # 在线插件
online_plugins = self.get_online_plugins() online_plugins = self.get_online_plugins()
if not online_plugins: if not online_plugins:
logger.error("未获取到在线插件") logger.error("未获取到第三方插件")
return return
# 支持更新的插件自动更新 # 支持更新的插件自动更新
for plugin in online_plugins: for plugin in online_plugins:
@ -140,7 +140,7 @@ class PluginManager(metaclass=Singleton):
f"插件 {plugin.get('plugin_name')} v{plugin.get('plugin_version')} 安装失败:{msg}") f"插件 {plugin.get('plugin_name')} v{plugin.get('plugin_version')} 安装失败:{msg}")
continue continue
logger.info(f"插件 {plugin.get('plugin_name')} 安装成功,版本:{plugin.get('plugin_version')}") logger.info(f"插件 {plugin.get('plugin_name')} 安装成功,版本:{plugin.get('plugin_version')}")
logger.info("在线插件安装完成") logger.info("第三方插件安装完成")
def get_plugin_config(self, pid: str) -> dict: def get_plugin_config(self, pid: str) -> dict:
""" """
@ -359,13 +359,12 @@ class PluginManager(metaclass=Singleton):
if not settings.PLUGIN_MARKET: if not settings.PLUGIN_MARKET:
return [] return []
logger.info(f"开始获取第三方插件...")
# 返回值 # 返回值
all_plugins = [] all_plugins = []
# 已安装插件 # 已安装插件
installed_apps = self.systemconfig.get(SystemConfigKey.UserInstalledPlugins) or [] installed_apps = self.systemconfig.get(SystemConfigKey.UserInstalledPlugins) or []
# 使用多线程获取线上插件 # 使用多线程获取线上插件
executor = concurrent.futures.ThreadPoolExecutor() with concurrent.futures.ThreadPoolExecutor() as executor:
futures = [] futures = []
for m in settings.PLUGIN_MARKET.split(","): for m in settings.PLUGIN_MARKET.split(","):
futures.append(executor.submit(__get_plugin_info, m)) futures.append(executor.submit(__get_plugin_info, m))