部署优化
- Docker Compose 三模式部署:支持基础模式(前端+后端+Redis+MySQL/PostgreSQL)、完整模式(+OCR+Chrome)、仅前后端模式(SQLite)
- 默认基础 MySQL 模式:执行
docker compose up -d即可启动 - 统一数据库环境变量:Docker 与代码统一使用
DATABASE__*格式读取配置 - Redis 默认命令启动:移除对
./config/redis.conf文件挂载的依赖 - 数据库升级到 MySQL 8.4 / PostgreSQL 17-alpine
性能优化
- 数据库查询性能: 消除
site_repository/transfer_repositoryN+1 查询;为SUBSCRIBE_MOVIES/SUBSCRIBE_TVS/CONFIG_USER_RSS/SITE_BRUSH_TORRENTS/TRANSFER_HISTORY/TRANSFER_UNKNOWN添加索引;subscribe_repository用单次first()替代.all()+ 循环 - HTTP 客户端连接池复用:
HttpClient/AsyncHttpClient按配置复用底层httpx.Client/httpx.AsyncClient,相同代理/头/超时/认证/SSL 配置共享连接池 - 缓存系统:
RedisStore.hgetall改为单次hgetall;MemoryCacheAdapter仅在存在监听器时触发CacheEvent,避免高频空转 - 消息队列:
MessageQueueFactory单例实现线程安全,避免重复创建队列 - 下载完成监控:
DownloadMonitor改为增量检查,后续轮询只拉取新增任务;qBittorrent 使用sync/maindata增量接口获取 completed 任务,减少数据传输与 per-torrent API 调用 - 图片代理: 下载逻辑全面异步化,使用
AsyncHttpClient连接池与asyncio.gather并发下载,替代ThreadPoolExecutor - JSON 序列化: 高频路径统一使用
JsonUtils(orjson为主,stdlib 为 fallback)
问题修复
- EventBus 注册: 修复 DI 容器创建的
EventBus与@on_eventhandler 注册脱节的问题;SystemLifecycleService现在从 DI 接收真实EventBus - 认证: 移除
SessionMiddleware与 session 认证兼容层,API 统一使用 JWT/Token 认证 - 消息通知图片: 添加诊断日志定位图片丢失问题;修复
_get_script_path依赖注入错误
依赖与质量
- 升级
redis/cryptography/pydantic-ai/granian/python-multipart/openai/google-genai/boto3/beautifulsoup4/qbittorrent-api/ruff等依赖 - 引入
orjson/uvloop;启用httpxHTTP/2 - 新增 Alembic 迁移
e9d9eaed8d5c补充查询索引 - 安全扫描:
just bandit/just safety均通过 - 测试: 1195 个测试通过,覆盖率
36%;新增事件系统异常隔离与异步投递测试