diff --git a/core/managers/plugin_manager.py b/core/managers/plugin_manager.py index bd48213..7969dfa 100644 --- a/core/managers/plugin_manager.py +++ b/core/managers/plugin_manager.py @@ -17,6 +17,9 @@ from ..utils.singleton import Singleton # 确保logger在模块级别可见 __all__ = ['PluginManager', 'logger'] +# 确保logger在模块级别可见 +__all__ = ['PluginManager', 'logger'] + class PluginManager(Singleton): """ diff --git a/docs/core-concepts/performance.md b/docs/core-concepts/performance.md index d03c3f3..79f588a 100644 --- a/docs/core-concepts/performance.md +++ b/docs/core-concepts/performance.md @@ -119,22 +119,4 @@ python setup_mypyc.py - **当前状态**:为了确保稳定性,`setup_mypyc.py` 脚本**默认不编译** `models/events/` 目录下的事件模型文件。这些文件虽然也被频繁使用,但它们的结构相对复杂,与 `Mypyc` 的兼容性问题仍在探索中。 - **未来展望**:我们会持续关注 `Mypyc` 的更新,当其对 `dataclass` 的支持得到改善后,会重新尝试将事件模型加入编译列表,以实现极致的性能。 -## 7. 健壮的 WebSocket 连接池 - -### 痛点 -在高并发或网络不稳定的情况下,单个 WebSocket 连接可能会因为各种原因(如超时、服务器重启、网络波动)而中断或变得不可靠。如果框架依赖于单一的、不稳定的连接,会导致 API 调用频繁失败,甚至整个机器人无响应。 - -### 解决方案 -`NeoBot` 实现了一个健壮的 `WebSocket 连接池` (`core/ws_pool.py`),它不仅管理多个连接,还具备智能的健康检查和恢复机制。 - -- **多连接管理**: 启动时会建立一个包含多个 WebSocket 连接的池,API 调用会被分发到这些连接上,实现负载均衡。 -- **自动健康检查**: 连接池会定期对池中的每个连接进行健康检查(发送 `get_status` 心跳包)。如果一个连接在规定时间内没有响应,它会被标记为“不健康”。 -- **故障转移与恢复**: 当一个 API 调用需要使用连接时,连接池会自动选择一个“健康”的连接。如果所有连接都不健康,它会尝试重新建立新的连接,直到成功为止。 -- **无感切换**: 对于上层调用者(如插件开发者)来说,这一切都是透明的。你只需要正常调用 `bot.call_api()`,连接池会在底层处理好所有的连接问题。 - -### 收益 -- **高可用性**: 即使部分连接失效,机器人依然可以通过健康的连接继续提供服务,大大减少了因网络问题导致的停机时间。 -- **高并发性能**: 通过连接池,多个 API 请求可以并行地通过不同的连接发送,提高了在高并发场景下的吞吐量。 -- **自动恢复**: 无需手动重启机器人,连接池能够自动从网络故障中恢复,增强了系统的稳定性和无人值守能力。 - 通过这种方式,我们在保证核心模块性能的同时,也维持了项目的稳定性和可维护性。 diff --git a/main.py b/main.py index 91826e2..0e81884 100644 --- a/main.py +++ b/main.py @@ -133,6 +133,9 @@ async def main(): # 同步帮助图片 await matcher.sync_help_pic() + # 同步帮助图片 + await matcher.sync_help_pic() + # 初始化权限管理器(包含了管理员管理功能) await permission_manager.initialize()