datai/datai-scenes/datai-scene-salesforce/docs/requirements/REQ-002.md
Kris 85f71e1dc3 feat: 实现数据同步进度跟踪功能
- 新增 SyncProgress 实体类、ISyncProgressService 接口和 SyncProgressServiceImpl 实现类
- 在 DataiIntegrationObjectController 中添加 6 个进度查询接口:
  - 查询指定对象的同步进度
  - 查询所有正在同步的对象进度
  - 查询指定对象的插入进度
  - 查询所有正在插入的对象进度
  - 查询指定对象的更新进度
  - 查询所有正在更新的对象进度
- 在 DataiIntegrationObjectServiceImpl 中集成进度跟踪功能:
  - syncFullData 方法集成同步进度跟踪
  - syncIncrementalData 方法集成同步进度跟踪
  - insertObjectDataToTarget 方法集成插入进度跟踪
  - updateObjectDataToTarget 方法集成更新进度跟踪
- 进度信息存储在内存中(ConcurrentHashMap),任务完成后立即清除
- 新增 3 个需求文档(REQ-002、REQ-003、REQ-004)
- 新增 3 个架构决策记录(0002、0003、0004)
- 新增 3 个提示词文件(002、003、004)
- 新增 3 个会话记录
- 新增 3 个变更记录(0012、0013、0014)
- 新增 3 个复盘报告
- 新增 6 个 API 文档
- 更新 CHANGELOG.md 和 docs/index.md
2026-01-16 13:02:09 +08:00

4.7 KiB
Raw Blame History

syncObjectData 同步进度跟踪需求

需求信息

  • 需求名称: syncObjectData 同步进度跟踪
  • 需求类型: 功能需求
  • 需求编号: REQ-002
  • 创建日期: 2026-01-16
  • 需求版本: v1.0.0
  • 需求提出人: 用户
  • 需求状态: 已批准

输入引用

引用相关的 docs 文档链接:

Context Maps

强制列出本次需求依赖的 Canvas 文件:

  • Authentication.canvas - 项目架构视觉化展示
  • 相关节点: DataiIntegrationObjectController - 对象同步控制接口

需求目标

在 syncObjectData 方法执行过程中,提供实时的同步进度跟踪功能,让用户能够了解当前同步任务的实际进度、已处理的数据量、剩余数据量等信息,提升用户体验和系统透明度。

需求描述

概述

当前 syncObjectData 方法在执行同步操作时,用户无法获知同步的实际进度,只能等待同步完成。本需求旨在实现同步进度的实时跟踪和查询功能。

详细需求

1. 进度跟踪机制

  • 需求描述: 在 syncObjectData 方法执行过程中,实时记录和更新同步进度信息
  • 优先级: 高
  • 验收标准:
    • 同步开始时,初始化进度跟踪记录
    • 同步过程中,实时更新已处理的数据量
    • 同步完成时,标记进度为完成状态并立即清除该同步进度信息
    • 同步失败时,标记进度为失败状态并立即清除该同步进度信息
  • 依赖关系: 无
  • 实现建议: 使用内存缓存(如 ConcurrentHashMap存储进度信息key 为对象 IDvalue 为进度对象

2. 进度查询接口

  • 需求描述: 提供查询接口,让用户能够获取当前同步任务的进度信息
  • 优先级: 高
  • 验收标准:
    • 提供 REST API 接口查询同步进度
    • 返回进度百分比、已处理数量、总数量、当前状态等信息
    • 支持按对象 ID 查询进度
  • 依赖关系: 依赖需求 1进度跟踪机制
  • 实现建议: 在 DataiIntegrationObjectController 中添加进度查询接口

3. 进度信息存储

约束

列出需求实现时的约束条件,例如:

  • 进度信息存储在内存中,系统重启后进度信息丢失
  • 同步任务完成后立即清除该同步进度信息,不保留历史记录
  • 进度查询接口需要考虑并发访问的性能
  • 进度跟踪不应影响同步操作的性能
  • 进度信息的更新频率需要合理控制

Rule Set

"请严格参考 @Authentication.canvas 中的状态机转移逻辑,不要自行发挥。"

具体规则

  • 必须使用 Canvas 中定义的类名和方法名
  • 必须遵循 Canvas 中定义的调用关系
  • 必须参考 Canvas 中的流程图逻辑

验收标准

定义验证需求是否满足的具体标准,例如:

  • 功能完整性:能够正确跟踪和查询同步进度
  • 性能指标:进度查询接口响应时间 < 100ms
  • 并发支持:支持至少 10 个对象同时同步并跟踪进度
  • 用户体验:进度信息准确、实时、易理解

风险

识别需求可能带来的风险,例如:

  • 技术实现风险:内存存储可能导致系统重启后进度丢失
  • 时间风险:实现进度跟踪可能需要修改现有的同步逻辑
  • 性能风险:频繁的进度更新可能影响同步性能
  • 质量风险:并发同步时可能出现进度信息不一致

需求变更记录

日期 变更内容 变更原因 变更人 审核人 状态
2026-01-16 创建需求文档 新增需求 用户 待审核 待审核

相关人员

  • 需求提出人: 用户
  • 需求负责人: 待定
  • 技术负责人: 待定
  • 测试负责人: 待定
  • 其他相关人员: 待定

评审信息

  • 评审日期: 待定
  • 评审人员: 待定
  • 评审结果: 待定
  • 评审意见: 待定
  • 修改建议: 待定