Files
sanguo_quant_live/management/edict_memory.md
T
2026-04-02 08:55:07 +08:00

66 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## Edict项目记忆 - 截止到2026年4月1日
### 成功经验
#### 1. 任务调度系统架构
- **分层任务状态管理**:实现了太子→中书省→门下省→尚书省→执行→审查→完成的完整流程
- **调度状态快照**:每个任务都有调度状态快照,记录任务在各个阶段的信息
- **调度状态同步**:使用`_scheduler`字段存储任务调度器信息,确保调度状态快照的一致性
#### 2. 自动化流程优化
- **任务状态同步**:使用`kanban_update.py`脚本实现任务状态的自动化同步更新
- **调度器快照同步**:修改`kanban_update.py`脚本,确保任务状态更新时调度器快照同步更新
- **任务完成标记**:实现了`done`命令,用于标记任务完成并更新任务状态
#### 3. 系统稳定性提升
- **原子操作**:所有任务状态更新都是原子操作,确保数据一致性
- **状态转换验证**:对非法状态转换进行验证和拦截,避免数据异常
- **任务状态管理**:实现了任务状态的自动化转换和管理
### 问题与解决方案
#### 1. 调度状态快照未同步更新问题
**问题描述**:使用`kanban_update.py`脚本更新任务状态时,服务器调度器的任务状态快照未同步更新
**原因**`kanban_update.py`脚本将任务调度器信息存储在`scheduler`字段中,但服务器代码使用`_scheduler`字段
**解决方案**:修改`kanban_update.py`脚本,将任务调度器信息存储在`_scheduler`字段中,确保调度状态快照同步更新
#### 2. 任务状态转换失败问题
**问题描述**:任务状态转换失败,服务器调度状态快照未更新
**原因**:任务调度状态快照没有同步更新,导致调度器对任务状态的认知与实际状态不符
**解决方案**:修改`kanban_update.py`脚本,确保任务状态更新时调度器快照同步更新
#### 3. 服务器启动失败问题
**问题描述**:服务器启动失败,提示“Address already in use”
**原因**:服务器端口7891被其他进程占用
**解决方案**:使用`lsof`命令查找占用端口7891的进程,并使用`kill`命令释放端口
#### 4. 终态任务调度状态快照同步问题
**问题描述**:任务JJC-20260401-012的状态已经是Done(已完成状态),但调度器快照未同步更新
**原因**:已完成状态是终态,不允许再进行状态转换,导致调度器快照未同步更新
**解决方案**:直接修改任务JJC-20260401-012的调度状态快照,确保调度器快照与任务状态一致
### 最佳实践
1. 使用`kanban_update.py`脚本更新任务状态时,确保任务调度器信息存储在`_scheduler`字段中
2. 使用`done`命令标记任务完成时,确保任务状态同步更新到任务调度器信息中
3. 使用状态转换命令时,确保状态转换符合任务调度流程
4. 使用服务器API获取任务调度状态时,确保服务器正在运行
5. 使用自动化流程时,确保任务状态转换符合系统设计要求
6. 对于终态任务,如任务JJC-20260401-012,直接修改任务调度状态快照以确保一致性
---
**总结**:edict项目实现了完整的任务调度系统,支持任务状态的自动化管理和调度状态快照同步更新。通过解决调度状态快照未同步更新问题,系统的稳定性和可靠性得到了显著提升。对于终态任务,如任务JJC-20260401-012,直接修改任务调度状态快照以确保一致性。