refactor(api): 简化 dataclass 转换逻辑并添加好友/群列表缓存
移除冗余的 _safe_dataclass_from_dict 工具函数,直接使用 dataclass 的构造方法 添加 get_friend_list 和 get_group_list 方法的缓存支持 修复 get_version_info 的错误 API 调用
This commit is contained in:
@@ -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`)。
|
||||
|
||||
Reference in New Issue
Block a user