datai/docs/archive/changelog/0016-metadata-change-auto-sync.md

119 lines
4.7 KiB
Markdown
Raw Permalink Normal View History

feat: 添加定时任务功能和文档 - 新增 4 个定时任务类: - ObjectSyncTask: 对象自动同步任务 - ObjectInsertTask: 对象自动插入任务 - ObjectUpdateTask: 对象自动更新任务 - MetadataChangeAutoSyncTask: 元数据变更自动同步任务 - 新增 2 个多对象操作接口: - insertMultipleObjectDataToTarget: 批量插入对象数据到目标系统 - updateMultipleObjectDataToTarget: 批量更新对象数据到目标系统 - 新增完整的定时任务文档: - task/index.md: 定时任务文档索引 - ObjectSyncTask.md: 对象自动同步任务文档 - ObjectInsertTask.md: 对象自动插入任务文档 - ObjectUpdateTask.md: 对象自动更新任务文档 - MetadataChangeAutoSyncTask.md: 元数据变更自动同步任务文档 - RateLimitResetTask.md: 每日限流重置任务文档 - 新增 API 文档索引:api-docs/index.md - 更新唯一真源文档中心:docs/index.md - 新增完整的项目文档: - REQ-005.md: 定时任务自动同步、插入和更新对象数据需求 - REQ-006.md: 元数据变更自动同步本地数据库需求 - 0005-scheduled-tasks-implementation.md: 定时任务架构决策 - 0006-metadata-change-auto-sync.md: 元数据变更自动同步架构决策 - 005-scheduled-tasks-implementation.md: 定时任务实现提示词 - 006-metadata-change-auto-sync.md: 元数据变更自动同步实现提示词 - 20260116-scheduled-tasks-implementation.md: 定时任务实现会话记录 - 20260116-metadata-change-auto-sync.md: 元数据变更自动同步实现会话记录 - 20260116-scheduled-tasks-implementation-retro.md: 定时任务实现复盘 - 20260116-metadata-change-auto-sync-retro.md: 元数据变更自动同步实现复盘 - 0015-scheduled-tasks-implementation.md: 定时任务变更记录 - 0016-metadata-change-auto-sync.md: 元数据变更自动同步变更记录 - 更新 CHANGELOG.md 和 README.md
2026-01-16 16:38:35 +08:00
# Changelog - 元数据变更自动同步本地数据库实现
## 变更信息
- **版本号**: v0.1.16
- **发布日期**: 2026-01-16
- **变更类型**: 特性更新
## 变更摘要
本次变更实现了元数据变更自动同步本地数据库功能,为系统提供了自动化的元数据同步能力。通过在 task 目录下创建定时任务类MetadataChangeAutoSyncTask实现了基于元数据变更类型、操作类型、对象配置的自动执行逻辑。定时任务采用现有的 Quartz 框架datai-quartz 模块)进行管理,支持通过 SysJob 实体配置执行时间、启用状态等。定时任务有完善的日志记录和异常处理机制,单个元数据变更同步失败不影响其他元数据变更的处理。
## 详细变更
### 特性更新
- **元数据变更自动同步任务** - 在 `task` 目录下创建 `MetadataChangeAutoSyncTask.java`
- Bean 名称metadataChangeAutoSyncTask
- 方法autoSyncMetadataChanges()
- 功能:扫描所有未同步的元数据变更记录,判断是否满足自动同步条件,调用相应的同步方法
- 自动同步条件:
- 通用条件:
- syncStatus = false 或 null未同步
- retryCount < 3重试次数小于3次
- 对象变更条件changeType = OBJECT
- 对象配置完整objectApi、objectLabel 不为空)
- 对象启用同步DataiIntegrationObject.isWork = true
- 对象当前没有正在执行的同步任务DataiIntegrationObject.syncStatus = false
- 字段变更条件changeType = FIELD
- 字段配置完整objectApi、fieldApi、fieldLabel 不为空)
- 对象启用同步DataiIntegrationObject.isWork = true
- 对象当前没有正在执行的同步任务DataiIntegrationObject.syncStatus = false
- **条件判断方法** - 创建独立的条件判断方法:
- isAutoSyncConditionMet():判断元数据变更是否满足自动同步条件
- isObjectChangeConditionMet():判断对象变更是否满足自动同步条件
- isFieldChangeConditionMet():判断字段变更是否满足自动同步条件
- **同步失败处理** - 创建同步失败处理方法:
- updateSyncFailure():更新元数据变更同步失败状态
- 更新 syncErrorMessage 字段,记录失败原因
- 增加 retryCount 字段
- 更新 lastRetryTime 字段
### Bug 修复
### 性能优化
- **复用现有框架** - 复用现有的 Quartz 框架datai-quartz 模块),无需额外依赖
- **串行执行方式** - 采用串行执行的方式,实现简单,避免并发问题
- **完善的异常处理** - 单个元数据变更同步失败不影响其他元数据变更的处理
- **详细的日志记录** - 每个任务都有详细的日志记录,便于问题排查和性能监控
### 安全修复
### 其他变更
## 影响范围
### 受影响的模块
- **datai-salesforce-integration** - 新增元数据变更自动同步任务,不影响现有功能
### 兼容性说明
- 本次变更完全兼容现有功能,所有新增内容均为独立模块
- 定时任务通过 datai-quartz 模块进行管理,支持动态配置执行时间、启用状态等
- 定时任务方法通过 JobInvokeUtil 工具进行调用,支持通过反射调用 Spring Bean 方法
- 定时任务执行日志通过 SysJobLog 实体进行持久化,支持查看执行历史
## 升级指南
### 升级步骤
1. 部署新版本的 `datai-salesforce-integration` 模块
2. 无需更新数据库表结构,元数据变更表已包含所需字段
3. 无需更新配置文件,定时任务功能自动启用
### 注意事项
- 定时任务执行时间可能与业务高峰期冲突,建议在业务低峰期执行
- 定时任务执行失败可能导致数据不一致,建议配置告警机制
- 条件判断逻辑可能存在错误,建议在测试环境中充分验证后再部署到生产环境
- 定时任务的 Cron 表达式配置错误可能导致任务不按预期执行,建议仔细检查
## 测试信息
### 测试环境
- 本地开发环境
### 测试结果
- 待测试
## 相关链接
- [需求文档](../requirements/REQ-006.md) - 元数据变更自动同步本地数据库需求
- [架构决策](../decisions/adr/0006-metadata-change-auto-sync.md) - 元数据变更自动同步本地数据库架构决策
- [提示词资产](../prompts/006-metadata-change-auto-sync.md) - 元数据变更自动同步本地数据库实现提示词
- [会话记录](../sessions/20260116-metadata-change-auto-sync.md) - 元数据变更自动同步本地数据库实现会话记录
## 发布人员
- AI Assistant - 开发人员
## 审核信息
- **审核人员**: 待审核
- **审核日期**: 待审核
- **审核状态**: 待审核
- **审核意见**: 待审核