refactor(api): 简化 dataclass 转换逻辑并添加好友/群列表缓存

移除冗余的 _safe_dataclass_from_dict 工具函数,直接使用 dataclass 的构造方法
添加 get_friend_list 和 get_group_list 方法的缓存支持
修复 get_version_info 的错误 API 调用
This commit is contained in:
2026-01-23 17:15:44 +08:00
parent 292881595e
commit 0e04829ac9
3 changed files with 55 additions and 45 deletions

View File

@@ -12,8 +12,10 @@
- **应当**: 使用 `asyncio.sleep()`、异步库(如 `aiohttp`),并通过 `asyncio.to_thread``run_in_executor` 将同步代码移出主事件循环。
- **禁止**: 直接在异步函数中使用任何可能阻塞的同步调用。
### 2. 资源管理
**复用优于重建**。频繁创建和销毁资源(如网络连接、浏览器页面)会严重影响性能
### 1.1 异步优先原则
- **绝对不要阻塞事件循环**NeoBot 采用多线程异步架构,任何同步阻塞操作都会导致整个机器人卡死
- **禁止**`time.sleep()`、同步 `requests`、密集 CPU 计算
- **必须**:使用 `await asyncio.sleep()`、异步 HTTP 客户端、线程池执行同步任务
- **应当**: 通过框架提供的单例管理器(如 `redis_manager`, `browser_manager`)获取和管理资源。
- **禁止**: 自行实例化管理器或在插件中创建独立的资源实例(如 `aiohttp.ClientSession`)。