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

3.5 KiB
Raw Blame History

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,直接修改任务调度状态快照以确保一致性。