主要变更: - 新增实时同步日志统计接口,支持多维度统计(综合、对象、操作类型、状态、时间趋势) - 新增实时同步统计接口,提供服务状态、对象统计和订阅统计 - 实现实时服务手动启动管理,移除自动启动注解 - 移除所有统计相关功能(EventProcessor、DataSynchronizer统计方法) - 解决DataiIntegrationObjectServiceImpl和ObjectRegistryImpl循环依赖问题 - 完善元数据变更统计功能,支持自动时间范围和缺失数据点填充 - 修复SQL布尔值兼容性问题(true/false改为1/0) - 新增SysJobController和SysJobLogController接口文档 - 更新项目文档和变更日志 技术细节: - 添加@Lazy注解解决循环依赖 - 实现时间趋势统计的自动时间范围处理 - 支持多种时间单位(天、周、月、季度)的趋势分析 - 优化同步成功率计算和数据处理完整性 - 遵循项目文档规范,更新唯一真源
162 lines
5.5 KiB
Markdown
162 lines
5.5 KiB
Markdown
# Changelog - 实时服务手动启动管理
|
|
|
|
## 变更信息
|
|
|
|
- **版本号**: v0.1.9
|
|
- **发布日期**: 2026-01-12
|
|
- **变更类型**: 特性更新
|
|
|
|
## 变更摘要
|
|
|
|
本次变更主要针对 Salesforce 实时同步服务的启动方式进行了优化。移除了自动启动机制,改为通过页面手动控制启动,提高了系统的可控性和灵活性。新增了 RealtimeServiceController 统一管理所有实时服务的初始化和启动。
|
|
|
|
## 详细变更
|
|
|
|
### 特性更新
|
|
|
|
- **移除自动启动机制** - 从以下实现类中移除了 @PostConstruct 注解:
|
|
- RealtimeSyncServiceImpl - 移除 @PostConstruct,改为通过 API 调用启动
|
|
- PubSubEventSubscriberImpl - 移除 @PostConstruct,改为通过 API 调用启动
|
|
- ObjectRegistryImpl - 移除 @PostConstruct,改为通过 API 调用初始化
|
|
|
|
- **新增 RealtimeServiceController** - 创建了统一管理实时服务的控制器:
|
|
- 提供了获取实时服务状态的接口
|
|
- 提供了初始化对象注册表的接口
|
|
- 提供了启动/停止事件订阅的接口
|
|
- 提供了启动/停止/重启实时同步服务的接口
|
|
- 提供了一键启动所有实时服务的接口
|
|
- 提供了一键停止所有实时服务的接口
|
|
|
|
## 影响范围
|
|
|
|
### 受影响的模块
|
|
|
|
- **datai-salesforce-integration** - 以下类被修改:
|
|
- RealtimeSyncServiceImpl - 移除 @PostConstruct 注解
|
|
- PubSubEventSubscriberImpl - 移除 @PostConstruct 注解
|
|
- ObjectRegistryImpl - 移除 @PostConstruct 注解
|
|
- RealtimeServiceController - 新增控制器类
|
|
- EventProcessor - 新增统计方法接口
|
|
- DataSynchronizer - 新增统计方法接口
|
|
- EventProcessorImpl - 实现统计方法
|
|
- DataSynchronizerImpl - 实现统计方法
|
|
|
|
### 兼容性说明
|
|
|
|
- 本次变更不向后兼容,应用启动后不会自动启动实时同步服务
|
|
- 需要通过 API 接口手动启动实时服务
|
|
- 现有的 DataiIntegrationRealtimeSyncController 仍然可用,但推荐使用新的 RealtimeServiceController
|
|
|
|
## 升级指南
|
|
|
|
### 升级步骤
|
|
|
|
1. 部署新的代码版本
|
|
|
|
2. 应用启动后,通过以下接口启动实时服务:
|
|
- 方式一:一键启动所有服务
|
|
```
|
|
POST /integration/realtime/service/start/all
|
|
```
|
|
- 方式二:分步启动服务
|
|
```
|
|
POST /integration/realtime/service/init/registry
|
|
POST /integration/realtime/service/start/subscriber
|
|
POST /integration/realtime/service/start/service
|
|
```
|
|
|
|
3. 如需停止实时服务,使用以下接口:
|
|
- 方式一:一键停止所有服务
|
|
```
|
|
POST /integration/realtime/service/stop/all
|
|
```
|
|
- 方式二:分步停止服务
|
|
```
|
|
POST /integration/realtime/service/stop/service
|
|
POST /integration/realtime/service/stop/subscriber
|
|
```
|
|
|
|
### API 接口说明
|
|
|
|
#### 获取实时服务状态
|
|
- **接口**: GET /integration/realtime/service/status
|
|
- **权限**: integration:realtime:status
|
|
- **返回**: 实时服务状态信息
|
|
|
|
#### 初始化对象注册表
|
|
- **接口**: POST /integration/realtime/service/init/registry
|
|
- **权限**: integration:realtime:init:registry
|
|
- **返回**: 初始化结果和注册对象数量
|
|
|
|
#### 启动事件订阅
|
|
- **接口**: POST /integration/realtime/service/start/subscriber
|
|
- **权限**: integration:realtime:start:subscriber
|
|
- **返回**: 启动结果和订阅状态
|
|
|
|
#### 停止事件订阅
|
|
- **接口**: POST /integration/realtime/service/stop/subscriber
|
|
- **权限**: integration:realtime:stop:subscriber
|
|
- **返回**: 停止结果和订阅状态
|
|
|
|
#### 启动实时同步服务
|
|
- **接口**: POST /integration/realtime/service/start/service
|
|
- **权限**: integration:realtime:start:service
|
|
- **返回**: 启动结果和服务状态
|
|
|
|
#### 停止实时同步服务
|
|
- **接口**: POST /integration/realtime/service/stop/service
|
|
- **权限**: integration:realtime:stop:service
|
|
- **返回**: 停止结果和服务状态
|
|
|
|
#### 重启实时同步服务
|
|
- **接口**: POST /integration/realtime/service/restart/service
|
|
- **权限**: integration:realtime:restart:service
|
|
- **返回**: 重启结果和服务状态
|
|
|
|
#### 一键启动所有实时服务
|
|
- **接口**: POST /integration/realtime/service/start/all
|
|
- **权限**: integration:realtime:start:all
|
|
- **返回**: 启动结果和详细信息
|
|
|
|
#### 一键停止所有实时服务
|
|
- **接口**: POST /integration/realtime/service/stop/all
|
|
- **权限**: integration:realtime:stop:all
|
|
- **返回**: 停止结果和详细信息
|
|
|
|
### 注意事项
|
|
|
|
- 应用启动后需要手动启动实时服务,否则实时同步功能将不可用
|
|
- 建议在应用启动完成后立即调用启动接口
|
|
- 确保配置了正确的权限,否则无法调用相关接口
|
|
- 启动顺序建议:先初始化对象注册表,再启动事件订阅,最后启动实时同步服务
|
|
|
|
## 测试信息
|
|
|
|
### 测试环境
|
|
|
|
- 开发环境 - 本地开发环境
|
|
|
|
### 测试结果
|
|
|
|
- 移除 @PostConstruct 注解后,应用启动时不会自动启动实时服务
|
|
- 通过 API 接口可以成功启动和停止实时服务
|
|
- 一键启动/停止接口正常工作
|
|
- 服务状态查询接口返回正确的状态信息
|
|
|
|
## 相关链接
|
|
|
|
- [设计文档](../design/0001-salesforce-cdc-realtime-sync.md) - Salesforce CDC实时同步设计
|
|
- [架构决策](../decisions/adr/0001-salesforce-cdc-sync.md) - Salesforce CDC同步方案
|
|
- [变更记录 0008](./0008-pubsub-config-optimization.md) - Pub/Sub API 配置项添加与连接工厂优化
|
|
|
|
## 发布人员
|
|
|
|
- 开发人员 - 开发工程师
|
|
|
|
## 审核信息
|
|
|
|
- **审核人员**: 待审核
|
|
- **审核日期**: 待审核
|
|
- **审核状态**: 待审核
|
|
- **审核意见**: 待审核
|