feat: 添加性能优化和架构文档,更新依赖和核心模块

refactor(browser_manager): 实现页面池机制以提升性能
refactor(image_manager): 添加模板缓存并集成页面池
refactor(bili_parser): 迁移到异步HTTP请求并实现会话复用
docs: 新增性能优化、架构设计和最佳实践文档
chore: 更新requirements.txt添加新依赖
This commit is contained in:
2026-01-13 03:56:31 +08:00
parent 5996f6eeaf
commit 24af862924
18 changed files with 589 additions and 489 deletions

View File

@@ -64,6 +64,24 @@
* **连接管理**: 负责初始化和管理与 Redis 服务器的异步连接。
* **提供实例**: 通过 `redis_manager.redis` 属性,为其他模块提供一个可用的 `redis` 客户端实例。
### 6. `BrowserManager` (全局实例: `browser_manager`)
* **文件**: `core/managers/browser_manager.py`
* **全局实例**: `from core.managers.browser_manager import browser_manager`
* **核心职责**:
* **浏览器生命周期管理**: 负责 Playwright 浏览器的启动和关闭。
* **页面池 (Page Pool)**: 维护一个预热的浏览器页面池(默认 3 个)。
* **资源复用**: 提供 `get_page()``release_page()` 接口,让渲染任务直接复用现有页面,避免了每次创建新页面的巨大开销。
### 7. `ImageManager` (全局实例: `image_manager`)
* **文件**: `core/managers/image_manager.py`
* **全局实例**: `from core.managers.image_manager import image_manager`
* **核心职责**:
* **图片渲染**: 基于 Jinja2 模板和 Playwright 浏览器生成图片。
* **模板缓存**: 自动缓存编译后的 Jinja2 模板,避免重复 IO 和解析。
* **资源调度**: 自动从 `BrowserManager` 借用和归还页面,开发者无需关心底层浏览器操作。
## 如何在插件中使用管理器
在您的插件中,只需通过 `import` 语句导入相应管理器的全局实例即可使用。