Skip to content

Commit ac3cc32

Browse files
authored
[Doc] add project wiki (#567)
1 parent cdc12f7 commit ac3cc32

272 files changed

Lines changed: 86378 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.qoder/repowiki/zh/content/API参考/API参考.md

Lines changed: 653 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 277 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,277 @@
1+
# 任务API
2+
3+
<cite>
4+
**本文档中引用的文件**
5+
- [CommonTaskController.java](file://datavines-server/src/main/java/io/datavines/server/api/controller/CommonTaskController.java)
6+
- [CommonTaskScheduleController.java](file://datavines-server/src/main/java/io/datavines/server/api/controller/CommonTaskScheduleController.java)
7+
- [CommonTaskService.java](file://datavines-server/src/main/java/io/datavines/server/repository/service/CommonTaskService.java)
8+
- [CommonTaskScheduleService.java](file://datavines-server/src/main/java/io/datavines/server/repository/service/CommonTaskScheduleService.java)
9+
- [CommonTaskScheduleCreateOrUpdate.java](file://datavines-server/src/main/java/io/datavines/server/api/dto/bo/task/CommonTaskScheduleCreateOrUpdate.java)
10+
- [CommonTask.java](file://datavines-server/src/main/java/io/datavines/server/repository/entity/CommonTask.java)
11+
- [CommonTaskSchedule.java](file://datavines-server/src/main/java/io/datavines/server/repository/entity/CommonTaskSchedule.java)
12+
- [CommonTaskType.java](file://datavines-server/src/main/java/io/datavines/server/enums/CommonTaskType.java)
13+
</cite>
14+
15+
## 目录
16+
1. [简介](#简介)
17+
2. [项目结构](#项目结构)
18+
3. [核心组件](#核心组件)
19+
4. [架构概述](#架构概述)
20+
5. [详细组件分析](#详细组件分析)
21+
6. [依赖分析](#依赖分析)
22+
7. [性能考虑](#性能考虑)
23+
8. [故障排除指南](#故障排除指南)
24+
9. [结论](#结论)
25+
26+
## 简介
27+
本文档全面记录了与质量检查任务管理相关的所有RESTful接口。详细描述了创建、更新、删除、启动和查询质量检查任务的API端点,包括HTTP方法、URL路径、请求参数和请求体结构。文档化了任务配置的完整JSON结构,包括数据源选择、检查规则配置、预期值设置、通知策略等。提供了不同类型任务(单表检查、跨表检查等)的配置示例。解释了任务克隆、批量操作等高级功能的API使用方法。包含了任务状态转换的详细说明和相应的API调用方式。
28+
29+
## 项目结构
30+
本项目采用模块化设计,主要分为以下几个核心模块:
31+
- **datavines-common**: 提供通用配置、数据源连接、异常处理等基础功能
32+
- **datavines-server**: 核心服务模块,包含API控制器、业务逻辑和服务层
33+
- **datavines-metric**: 质量检查指标管理模块
34+
- **datavines-notification**: 通知系统模块
35+
- **datavines-connector**: 数据源连接器模块
36+
- **datavines-engine**: 执行引擎模块
37+
38+
任务管理相关的API主要位于`datavines-server`模块中,通过Spring Boot框架提供RESTful服务。
39+
40+
```mermaid
41+
graph TD
42+
subgraph "前端"
43+
UI[用户界面]
44+
end
45+
subgraph "后端服务"
46+
API[API服务器]
47+
Service[业务服务层]
48+
Repository[数据访问层]
49+
end
50+
subgraph "数据存储"
51+
DB[(数据库)]
52+
end
53+
UI --> API
54+
API --> Service
55+
Service --> Repository
56+
Repository --> DB
57+
```
58+
59+
**图表来源**
60+
- [CommonTaskController.java](file://datavines-server/src/main/java/io/datavines/server/api/controller/CommonTaskController.java#L29-L31)
61+
- [CommonTaskScheduleController.java](file://datavines-server/src/main/java/io/datavines/server/api/controller/CommonTaskScheduleController.java#L34-L36)
62+
63+
**章节来源**
64+
- [CommonTaskController.java](file://datavines-server/src/main/java/io/datavines/server/api/controller/CommonTaskController.java#L1-L47)
65+
- [CommonTaskScheduleController.java](file://datavines-server/src/main/java/io/datavines/server/api/controller/CommonTaskScheduleController.java#L1-L61)
66+
67+
## 核心组件
68+
质量检查任务管理的核心组件包括任务控制器(CommonTaskController)、任务调度控制器(CommonTaskScheduleController)、任务服务(CommonTaskService)和任务调度服务(CommonTaskScheduleService)。这些组件共同实现了任务的创建、更新、删除、查询和调度功能。
69+
70+
任务管理采用分层架构设计,控制器层负责接收HTTP请求,服务层处理业务逻辑,数据访问层负责与数据库交互。任务状态管理通过数据库中的状态字段实现,支持任务的生命周期管理。
71+
72+
**章节来源**
73+
- [CommonTaskService.java](file://datavines-server/src/main/java/io/datavines/server/repository/service/CommonTaskService.java#L28-L49)
74+
- [CommonTaskScheduleService.java](file://datavines-server/src/main/java/io/datavines/server/repository/service/CommonTaskScheduleService.java#L28-L42)
75+
76+
## 架构概述
77+
质量检查任务管理系统的架构采用典型的三层设计模式:表现层、业务逻辑层和数据访问层。表现层由Spring MVC控制器组成,负责处理RESTful API请求;业务逻辑层包含服务类,实现核心业务规则;数据访问层使用MyBatis Plus框架,提供对数据库的CRUD操作。
78+
79+
系统通过CommonTask和CommonTaskSchedule两个主要实体类来管理任务及其调度配置。任务与数据源关联,支持多种任务类型,包括元数据抓取和数据质量报告。
80+
81+
```mermaid
82+
classDiagram
83+
class CommonTask {
84+
+Long id
85+
+CommonTaskType taskType
86+
+FetchType type
87+
+Long dataSourceId
88+
+String databaseName
89+
+String tableName
90+
+String parameter
91+
+int status
92+
+String executeHost
93+
+LocalDateTime submitTime
94+
+LocalDateTime scheduleTime
95+
+LocalDateTime startTime
96+
+LocalDateTime endTime
97+
+LocalDateTime createTime
98+
+LocalDateTime updateTime
99+
}
100+
class CommonTaskSchedule {
101+
+Long id
102+
+Long dataSourceId
103+
+CommonTaskType taskType
104+
+String type
105+
+String param
106+
+String cronExpression
107+
+boolean status
108+
+LocalDateTime startTime
109+
+LocalDateTime endTime
110+
+Long createBy
111+
+LocalDateTime createTime
112+
+Long updateBy
113+
+LocalDateTime updateTime
114+
}
115+
class CommonTaskService {
116+
+IPage~CatalogMetaDataFetchTaskVO~ getFetchTaskPage(Long, String, Integer, Integer)
117+
+long refreshCatalog(CatalogRefresh)
118+
+int update(CommonTask)
119+
+CommonTask getById(long)
120+
+Long killCatalogTask(Long)
121+
+CommonTask[] listNeedFailover(String)
122+
+CommonTask[] listTaskNotInServerList(String[])
123+
+String getTaskExecuteHost(Long)
124+
+boolean deleteByDataSourceId(long)
125+
+LocalDateTime getRefreshTime(long, String, String)
126+
}
127+
class CommonTaskScheduleService {
128+
+CommonTaskSchedule createOrUpdate(CommonTaskScheduleCreateOrUpdate)
129+
+boolean deleteById(long)
130+
+boolean deleteByDataSourceId(long)
131+
+CommonTaskSchedule getById(long)
132+
+CommonTaskSchedule getByDataSourceId(Long, String)
133+
+String[] getCron(MapParam)
134+
}
135+
CommonTaskController --> CommonTaskService : "依赖"
136+
CommonTaskScheduleController --> CommonTaskScheduleService : "依赖"
137+
CommonTaskService --> CommonTask : "管理"
138+
CommonTaskScheduleService --> CommonTaskSchedule : "管理"
139+
```
140+
141+
**图表来源**
142+
- [CommonTask.java](file://datavines-server/src/main/java/io/datavines/server/repository/entity/CommonTask.java#L31-L88)
143+
- [CommonTaskSchedule.java](file://datavines-server/src/main/java/io/datavines/server/repository/entity/CommonTaskSchedule.java#L30-L79)
144+
145+
## 详细组件分析
146+
### 任务控制器分析
147+
任务控制器(CommonTaskController)负责处理与任务相关的HTTP请求,提供分页查询任务列表的功能。该控制器通过RESTful API暴露服务,使用Spring MVC注解定义路由和请求处理方法。
148+
149+
```mermaid
150+
sequenceDiagram
151+
participant Client as "客户端"
152+
participant Controller as "CommonTaskController"
153+
participant Service as "CommonTaskService"
154+
participant Repository as "数据访问层"
155+
Client->>Controller : GET /api/v1/common-task/page
156+
Controller->>Service : getFetchTaskPage(datasourceId, taskType, pageNumber, pageSize)
157+
Service->>Repository : 查询任务分页数据
158+
Repository-->>Service : 返回分页结果
159+
Service-->>Controller : 返回任务列表
160+
Controller-->>Client : 返回JSON响应
161+
```
162+
163+
**图表来源**
164+
- [CommonTaskController.java](file://datavines-server/src/main/java/io/datavines/server/api/controller/CommonTaskController.java#L39-L46)
165+
- [CommonTaskService.java](file://datavines-server/src/main/java/io/datavines/server/repository/service/CommonTaskService.java#L48-L49)
166+
167+
### 任务调度控制器分析
168+
任务调度控制器(CommonTaskScheduleController)负责处理任务调度相关的创建、更新、查询操作。该控制器提供了创建或更新任务调度、根据数据源ID获取任务调度、获取cron表达式等核心功能。
169+
170+
```mermaid
171+
sequenceDiagram
172+
participant Client as "客户端"
173+
participant Controller as "CommonTaskScheduleController"
174+
participant Service as "CommonTaskScheduleService"
175+
participant Repository as "数据访问层"
176+
Client->>Controller : POST /api/v1/common-task/schedule/createOrUpdate
177+
Controller->>Service : createOrUpdate(taskScheduleCreateOrUpdate)
178+
Service->>Repository : 保存或更新任务调度
179+
Repository-->>Service : 返回保存结果
180+
Service-->>Controller : 返回任务调度信息
181+
Controller-->>Client : 返回JSON响应
182+
```
183+
184+
**图表来源**
185+
- [CommonTaskScheduleController.java](file://datavines-server/src/main/java/io/datavines/server/api/controller/CommonTaskScheduleController.java#L44-L48)
186+
- [CommonTaskScheduleService.java](file://datavines-server/src/main/java/io/datavines/server/repository/service/CommonTaskScheduleService.java#L30-L31)
187+
188+
### 任务调度配置分析
189+
任务调度配置(CommonTaskScheduleCreateOrUpdate)是创建和更新任务调度的核心数据传输对象。该类定义了任务调度所需的所有必要字段,包括任务ID、任务类型、数据源ID、调度类型、参数、开始时间和结束时间。
190+
191+
```mermaid
192+
classDiagram
193+
class CommonTaskScheduleCreateOrUpdate {
194+
+Long id
195+
+CommonTaskType taskType
196+
+Long dataSourceId
197+
+String type
198+
+MapParam param
199+
+LocalDateTime startTime
200+
+LocalDateTime endTime
201+
}
202+
class CommonTaskType {
203+
+CATALOG_METADATA_FETCH(0, "catalog_metadata_fetch", "元数据抓取")
204+
+DATA_QUALITY_REPORT(1, "data_quality_report", "数据质量报告")
205+
}
206+
class MapParam {
207+
+String cycle
208+
+String timeZone
209+
}
210+
CommonTaskScheduleCreateOrUpdate --> CommonTaskType : "引用"
211+
CommonTaskScheduleCreateOrUpdate --> MapParam : "包含"
212+
```
213+
214+
**图表来源**
215+
- [CommonTaskScheduleCreateOrUpdate.java](file://datavines-server/src/main/java/io/datavines/server/api/dto/bo/task/CommonTaskScheduleCreateOrUpdate.java#L28-L51)
216+
- [CommonTaskType.java](file://datavines-server/src/main/java/io/datavines/server/enums/CommonTaskType.java#L24-L74)
217+
218+
**章节来源**
219+
- [CommonTaskScheduleCreateOrUpdate.java](file://datavines-server/src/main/java/io/datavines/server/api/dto/bo/task/CommonTaskScheduleCreateOrUpdate.java#L1-L51)
220+
- [CommonTaskType.java](file://datavines-server/src/main/java/io/datavines/server/enums/CommonTaskType.java#L1-L74)
221+
222+
## 依赖分析
223+
质量检查任务管理系统依赖于多个核心模块和外部库。系统内部依赖关系清晰,各模块职责分明。主要依赖包括:
224+
225+
```mermaid
226+
graph TD
227+
CommonTaskController --> CommonTaskService
228+
CommonTaskScheduleController --> CommonTaskScheduleService
229+
CommonTaskService --> CommonTask
230+
CommonTaskScheduleService --> CommonTaskSchedule
231+
CommonTaskScheduleService --> CommonTaskType
232+
CommonTaskController --> DataVinesConstants
233+
CommonTaskScheduleController --> DataVinesConstants
234+
CommonTaskService --> CatalogRefresh
235+
CommonTaskScheduleService --> MapParam
236+
style CommonTaskController fill:#f9f,stroke:#333
237+
style CommonTaskScheduleController fill:#f9f,stroke:#333
238+
```
239+
240+
**图表来源**
241+
- [CommonTaskController.java](file://datavines-server/src/main/java/io/datavines/server/api/controller/CommonTaskController.java#L36-L37)
242+
- [CommonTaskScheduleController.java](file://datavines-server/src/main/java/io/datavines/server/api/controller/CommonTaskScheduleController.java#L41-L42)
243+
244+
**章节来源**
245+
- [CommonTaskService.java](file://datavines-server/src/main/java/io/datavines/server/repository/service/CommonTaskService.java#L19-L27)
246+
- [CommonTaskScheduleService.java](file://datavines-server/src/main/java/io/datavines/server/repository/service/CommonTaskScheduleService.java#L21-L27)
247+
248+
## 性能考虑
249+
在设计和实现质量检查任务管理系统时,考虑了以下性能优化策略:
250+
- 使用MyBatis Plus框架提高数据库操作效率
251+
- 通过分页查询避免一次性加载大量数据
252+
- 合理设计数据库索引,特别是在常用查询字段上
253+
- 使用缓存机制减少重复计算
254+
- 异步处理耗时操作,提高系统响应速度
255+
256+
对于大规模任务管理,建议定期清理已完成的任务记录,保持数据库性能。同时,合理配置任务调度频率,避免系统资源过度消耗。
257+
258+
## 故障排除指南
259+
当遇到任务管理相关问题时,可以按照以下步骤进行排查:
260+
1. 检查API请求参数是否正确,特别是数据源ID和任务类型
261+
2. 验证数据库连接是否正常
262+
3. 查看服务日志,定位具体错误信息
263+
4. 检查任务调度配置是否符合规范
264+
5. 确认用户权限是否足够执行相关操作
265+
266+
常见问题包括:
267+
- 任务创建失败:检查数据源配置和权限
268+
- 任务调度不执行:验证cron表达式和时间设置
269+
- 查询结果为空:确认数据源ID和任务类型是否匹配
270+
- 性能问题:检查数据库索引和系统资源使用情况
271+
272+
**章节来源**
273+
- [CommonTaskController.java](file://datavines-server/src/main/java/io/datavines/server/api/controller/CommonTaskController.java#L39-L46)
274+
- [CommonTaskScheduleController.java](file://datavines-server/src/main/java/io/datavines/server/api/controller/CommonTaskScheduleController.java#L50-L54)
275+
276+
## 结论
277+
本文档详细介绍了质量检查任务管理系统的API设计和实现。系统提供了完整的任务生命周期管理功能,包括创建、更新、删除、查询和调度。通过清晰的分层架构和模块化设计,系统具有良好的可维护性和扩展性。API设计遵循RESTful规范,便于集成和使用。未来可以进一步优化性能,增加更多任务类型和检查规则,提升系统的实用性和灵活性。

0 commit comments

Comments
 (0)