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

119 lines
4.7 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.

# 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
- 对象配置完整objectApiobjectLabel 不为空
- 对象启用同步DataiIntegrationObject.isWork = true
- 对象当前没有正在执行的同步任务DataiIntegrationObject.syncStatus = false
- 字段变更条件changeType = FIELD
- 字段配置完整objectApifieldApifieldLabel 不为空
- 对象启用同步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 - 开发人员
## 审核信息
- **审核人员**: 待审核
- **审核日期**: 待审核
- **审核状态**: 待审核
- **审核意见**: 待审核