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

4.7 KiB
Raw Permalink Blame History

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 表达式配置错误可能导致任务不按预期执行,建议仔细检查

测试信息

测试环境

  • 本地开发环境

测试结果

  • 待测试

相关链接

  • 需求文档 - 元数据变更自动同步本地数据库需求
  • 架构决策 - 元数据变更自动同步本地数据库架构决策
  • 提示词资产 - 元数据变更自动同步本地数据库实现提示词
  • 会话记录 - 元数据变更自动同步本地数据库实现会话记录

发布人员

  • AI Assistant - 开发人员

审核信息

  • 审核人员: 待审核
  • 审核日期: 待审核
  • 审核状态: 待审核
  • 审核意见: 待审核