4.1 KiB
4.1 KiB
Changelog - syncObjectData 同步进度跟踪实现
变更信息
- 版本号: v0.1.12
- 发布日期: 2026-01-16
- 变更类型: 特性更新
变更摘要
本次变更实现了 syncObjectData 同步进度跟踪功能,为用户提供了实时的同步进度查询能力。通过使用内存存储方案(ConcurrentHashMap)存储进度信息,实现了轻量级的进度跟踪机制。同步任务完成后立即清除进度信息,不保留历史记录,避免了内存泄漏和数据库写入开销。创建了完整的进度跟踪服务层和查询接口,支持按对象ID查询进度和查询所有正在同步的对象进度。
详细变更
特性更新
- 同步进度实体类 - 创建了
SyncProgress实体类,包含 objectId、syncType、totalBatches、processedBatches、currentBatch、progressPercentage、startTime、endTime、status、errorMessage 等字段 - 进度跟踪服务接口 - 创建了
ISyncProgressService接口,定义了 startProgressTracking、updateProgress、completeProgress、failProgress、getProgress、getAllProgress、getAllRunningProgress 等方法 - 进度跟踪服务实现 - 创建了
SyncProgressServiceImpl实现类,使用 ConcurrentHashMap 存储进度信息,支持并发访问,completeProgress 和 failProgress 方法在完成后立即清除该同步进度信息 - 进度查询接口 - 在
DataiIntegrationObjectController中添加了两个进度查询接口:GET /integration/object/progress/{objectId}- 查询指定对象的同步进度GET /integration/object/progress- 查询所有正在同步的对象进度
- 进度跟踪集成 - 在
DataiIntegrationObjectServiceImpl中集成了进度跟踪功能:- 在 syncFullData 方法中:开始时调用 startProgressTracking,每个批次完成后调用 updateProgress,完成时调用 completeProgress,失败时调用 failProgress
- 在 syncIncrementalData 方法中:开始时调用 startProgressTracking,同步前后调用 updateProgress,完成时调用 completeProgress,失败时调用 failProgress
Bug 修复
无
性能优化
- 内存存储方案 - 使用 ConcurrentHashMap 存储进度信息,访问速度快,响应时间 < 10ms
- 进度信息清除 - 同步任务完成后立即清除进度信息,不保留历史记录,避免内存累积
- 无数据库写入 - 不将同步进度数据同步到数据库,避免数据库写入开销,提升性能
安全修复
无
其他变更
无
影响范围
受影响的模块
- datai-salesforce-integration - 新增同步进度跟踪功能,不影响现有同步逻辑
兼容性说明
- 本次变更完全兼容现有功能,所有新增内容均为独立模块
- 进度跟踪功能通过依赖注入方式集成到现有同步逻辑中,不影响同步性能
- 进度查询接口需要登录认证,使用 @PreAuthorize 注解进行权限控制
升级指南
升级步骤
- 部署新版本的
datai-salesforce-integration模块 - 无需更新数据库表结构,进度信息存储在内存中
- 无需更新配置文件,进度跟踪功能自动启用
注意事项
- 进度信息存储在内存中,系统重启后进度信息丢失
- 同步任务完成后立即清除进度信息,不保留历史记录
- 进度查询接口需要
integration:object:progress权限 - 建议在测试环境中先验证进度跟踪功能后再部署到生产环境
测试信息
测试环境
- 本地开发环境
测试结果
- 待测试
相关链接
- 需求文档 - syncObjectData 同步进度跟踪需求
- 架构决策 - syncObjectData 同步进度跟踪架构决策
- 提示词资产 - syncObjectData 同步进度跟踪实现提示词
- 会话记录 - syncObjectData 同步进度跟踪实现会话记录
发布人员
- AI Assistant - 开发人员
审核信息
- 审核人员: 待审核
- 审核日期: 待审核
- 审核状态: 待审核
- 审核意见: 待审核