datai/datai-scenes/datai-scene-salesforce/docs/changelog/0009-realtime-service-manual-start.md
Kris ccc7109c31 feat(salesforce-integration): 完善实时同步和统计功能
主要变更:
- 新增实时同步日志统计接口,支持多维度统计(综合、对象、操作类型、状态、时间趋势)
- 新增实时同步统计接口,提供服务状态、对象统计和订阅统计
- 实现实时服务手动启动管理,移除自动启动注解
- 移除所有统计相关功能(EventProcessor、DataSynchronizer统计方法)
- 解决DataiIntegrationObjectServiceImpl和ObjectRegistryImpl循环依赖问题
- 完善元数据变更统计功能,支持自动时间范围和缺失数据点填充
- 修复SQL布尔值兼容性问题(true/false改为1/0)
- 新增SysJobController和SysJobLogController接口文档
- 更新项目文档和变更日志

技术细节:
- 添加@Lazy注解解决循环依赖
- 实现时间趋势统计的自动时间范围处理
- 支持多种时间单位(天、周、月、季度)的趋势分析
- 优化同步成功率计算和数据处理完整性
- 遵循项目文档规范,更新唯一真源
2026-01-13 13:51:33 +08:00

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 配置项添加与连接工厂优化
## 发布人员
- 开发人员 - 开发工程师
## 审核信息
- **审核人员**: 待审核
- **审核日期**: 待审核
- **审核状态**: 待审核
- **审核意见**: 待审核