feat: 重构项目心跳为Redis LIST并更新相关文档
重构项目心跳数据结构为Redis LIST,更新相关文档和OpenSpec规范。主要变更包括: - 将项目心跳从STRING改为LIST类型 - 更新后端服务以支持LIST操作 - 同步更新文档和OpenSpec规范 - 统一后端端口为3001 - 添加部署指南和Windows部署文档 修复前端API请求路径,移除硬编码的localhost地址。添加PM2和Nginx配置文件模板,完善部署流程文档。更新Redis集成协议文档,明确LIST数据结构和外部项目对接规范。
This commit is contained in:
@@ -10,19 +10,18 @@
|
||||
|
||||
**键名**: `项目心跳`
|
||||
|
||||
**类型**: String (JSON数组)
|
||||
**类型**: List
|
||||
|
||||
**描述**: 统一存储所有项目的心跳信息,替代原有的分散键结构。
|
||||
|
||||
**数据格式**:
|
||||
**数据格式**: 每个列表元素是一个 JSON 字符串,表示一条心跳记录:
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"projectName": "string",
|
||||
"apiBaseUrl": "string",
|
||||
"lastActiveAt": "number"
|
||||
}
|
||||
]
|
||||
{
|
||||
"projectName": "string",
|
||||
"apiBaseUrl": "string",
|
||||
"lastActiveAt": "number"
|
||||
}
|
||||
```
|
||||
|
||||
**字段说明**:
|
||||
@@ -32,20 +31,15 @@
|
||||
|
||||
**示例**:
|
||||
```json
|
||||
[
|
||||
{
|
||||
"projectName": "用户管理系统",
|
||||
"apiBaseUrl": "http://localhost:8080",
|
||||
"lastActiveAt": 1704067200000
|
||||
},
|
||||
{
|
||||
"projectName": "数据可视化平台",
|
||||
"apiBaseUrl": "http://localhost:8081",
|
||||
"lastActiveAt": 1704067260000
|
||||
}
|
||||
]
|
||||
{
|
||||
"projectName": "用户管理系统",
|
||||
"apiBaseUrl": "http://localhost:8080",
|
||||
"lastActiveAt": 1704067200000
|
||||
}
|
||||
```
|
||||
|
||||
说明:外部项目会周期性向 LIST 写入多条心跳记录;控制台后端按 `projectName` 去重,保留 `lastActiveAt` 最新的一条用于在线判定与项目列表展示。
|
||||
|
||||
### 2. 项目控制台日志
|
||||
|
||||
**键名**: `{projectName}_项目控制台`
|
||||
@@ -94,7 +88,7 @@
|
||||
|
||||
**类型**: List
|
||||
|
||||
**描述**: 存储发送给项目的控制指令。
|
||||
**描述**: 历史结构(已废弃)。当前命令下发通过 HTTP 调用目标项目 API,不再通过 Redis 存储控制指令。
|
||||
|
||||
**指令对象格式**:
|
||||
```json
|
||||
@@ -206,9 +200,8 @@
|
||||
|
||||
为确保平滑过渡,系统在读取项目心跳时采用以下策略:
|
||||
|
||||
1. **优先读取新结构**: 首先尝试从`项目心跳`列表中查找项目
|
||||
2. **回退到旧结构**: 如果新结构中未找到,则尝试从`{projectName}_项目心跳`键中读取
|
||||
3. **自动迁移**: 当检测到旧结构数据时,可以自动迁移到新结构
|
||||
1. **只读取新结构**: 项目列表与在线判定只读取 `项目心跳`(LIST)
|
||||
2. **旧结构仅用于迁移**: `{projectName}_项目心跳` 仅作为历史数据来源,通过 `POST /api/projects/migrate` 导入一次
|
||||
|
||||
## 性能优化
|
||||
|
||||
@@ -224,8 +217,8 @@
|
||||
|
||||
### 3. 心跳更新
|
||||
|
||||
- 直接更新项目列表中的对应项目
|
||||
- 避免频繁的键操作
|
||||
- 外部项目持续向 `项目心跳`(LIST)追加心跳记录
|
||||
- 建议外部项目结合 `LTRIM` 控制列表长度
|
||||
|
||||
## 监控和维护
|
||||
|
||||
@@ -276,4 +269,4 @@
|
||||
|
||||
- [Redis数据类型](https://redis.io/docs/data-types/)
|
||||
- [项目OpenSpec规范](../openspec/specs/)
|
||||
- [API文档](../docs/api-documentation.md)
|
||||
- [API文档](../docs/api-documentation.md)
|
||||
|
||||
Reference in New Issue
Block a user