9.7 KiB
9.7 KiB
1. 获取天风任务列表
接口描述
获取系统中所有任务的列表信息,支持分页查询、条件筛选和排序。
请求方式
- HTTP方法: GET
- 接口路径:
/api/vwed-task/list
请求参数
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
pageNum | Integer | 否 | 页码,默认为1 |
pageSize | Integer | 否 | 每页记录数,默认为10 |
keyword | String | 否 | 关键字搜索(任务名称) |
status | Integer | 否 | 任务状态筛选 |
sortField | String | 否 | 排序字段 |
sortOrder | String | 否 | 排序方式:asc(升序)、desc(降序) |
响应参数
{
"code": 200,
"message": "操作成功",
"data": {
"total": 3,
"list": [
{
"id": "193f8412-fa0d-4b6d-9648-70bceacd6629",
"label": "test1",
"version": 19,
"templateName": "userTemplate",
"periodicTask": false,
"ifEnable": 0,
"status": 0,
"createDate": "2023-05-10 14:30:22",
"remark": "备注信息"
},
{
"id": "734749d1-0fdf-4a06-9fb7-8f991953d5e5",
"label": "test",
"version": 3,
"templateName": "userTemplate",
"periodicTask": true,
"ifEnable": 1,
"status": 0,
"createDate": "2023-05-15 09:45:18",
"remark": "定时任务"
},
{
"id": "7c6aac36-652b-4314-9433-f5788e9e7adb",
"label": "test1-备份",
"version": 1,
"templateName": "userTemplate",
"periodicTask": false,
"ifEnable": 0,
"status": 0,
"createDate": "2023-05-16 11:22:36",
"remark": "备份1"
}
],
"pageNum": 1,
"pageSize": 10,
"totalPages": 1
}
}
2. 创建任务
接口描述
创建一个新任务,设置任务的基本信息。创建任务时只需提供任务名称和任务类型两个必填项。系统会自动将新建任务与当前已激活的模板进行关联,系统中有且只有一个处于激活状态的模板。
请求方式
- HTTP方法: POST
- 接口路径:
/api/vwed-task/create
请求参数
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
label | String | 是 | 任务名称 |
taskType | Integer | 是 | 任务类型:1-普通任务,2-定时任务 |
mapId | String | 是 | 相关地图ID |
remark | Integer | 否 | 任务备注 |
period | Integer | 否 | 周期时间(毫秒) |
delay | Integer | 否 | 延迟时间(毫秒),默认3000 |
releaseSites | Boolean | 否 | 是否释放站点,默认true |
token | String | 否 | 用户token值,用于认证 |
tenantId | String | 否 | 租户ID,用于多租户隔离,默认为"default" |
请求示例
{
"label": "新任务",
"taskType": 1,
"remark": "测试用任务",
"token": "user_authentication_token",
"tenantId": "tenant1"
}
响应参数
{
"code": 200,
"message": "操作成功",
"data": {
"id": "193f8412-fa0d-4b6d-9648-70bceacd6629",
"label": "新任务",
"version": 1,
"templateName": "userTemplate",
"periodicTask": false,
"status": 0,
"createDate": "2023-05-10 14:30:22"
}
}
### 3. 删除任务
#### 接口描述
删除指定的一个或多个任务。
#### 请求方式
- **HTTP方法**: DELETE
- **接口路径**: `/api/vwed-task/delete`
#### 请求参数
| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| ids | Array | 是 | 要删除的任务ID数组 |
#### 请求示例
```json
{
"ids": ["193f8412-fa0d-4b6d-9648-70bceacd6629", "734749d1-0fdf-4a06-9fb7-8f991953d5e5"]
}
响应参数
{
"code": 200,
"message": "删除成功",
"data": null
}
5. 批量导出任务
接口描述
导出多个指定任务的配置,返回加密的专有格式文件(.vtex)。导出时会自动去除ID、创建时间、更新时间、版本和删除标记等系统相关字段,仅保留任务的功能性配置数据。
请求方式
- HTTP方法: POST
- 接口路径:
/api/vwed-task/export-batch
请求参数
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
ids | Array | 是 | 要导出的任务ID数组 |
请求示例
{
"ids": ["193f8412-fa0d-4b6d-9648-70bceacd6629", "734749d1-0fdf-4a06-9fb7-8f991953d5e5"]
}
响应参数
文件下载响应,Content-Type为application/octet-stream,文件为加密的二进制格式(.vtex),包含以下自动去除系统相关字段的任务定义信息:
- 已移除:id, created_at, updated_at, version, deleted 等系统字段
- 保留:label(任务名称), detail(任务详情), period(周期时间), delay(延迟时间)等功能性字段
响应头信息
Content-Disposition: attachment; filename=tasks_export_2.vtex
Content-Type: application/octet-stream
X-Content-Type-Options: nosniff
7. 导入任务
接口描述
通过导入任务配置文件(.vtex)创建新任务。支持批量导入多个任务,系统会自动为每个任务生成唯一的名称以避免冲突。
请求方式
- HTTP方法: POST
- 接口路径:
/api/vwed-task/import
- Content-Type: multipart/form-data
请求参数
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
file | File | 是 | 任务配置文件,加密的专有格式(.vtex) |
token | String | 否 | 用户token值,用于认证 |
tenantId | String | 否 | 租户ID,用于多租户隔离,默认为"default" |
响应参数
{
"code": 200,
"message": "成功导入 2 个任务",
"data": {
"success_count": 2,
"failed_count": 0,
"failed_tasks": [],
"imported_tasks": [
{
"id": "193f8412-fa0d-4b6d-9648-70bceacd6631",
"name": "任务1-备份-16487239871234",
"original_name": "任务1"
},
{
"id": "734749d1-0fdf-4a06-9fb7-8f991953d5e6",
"name": "任务2-备份-16487239875678",
"original_name": "任务2"
}
]
}
}
部分导入成功响应示例
{
"code": 200,
"message": "部分导入成功: 成功 1 个, 失败 1 个",
"data": {
"success_count": 1,
"failed_count": 1,
"failed_tasks": [
{
"index": 1,
"name": "任务2",
"reason": "任务数据不完整"
}
],
"imported_tasks": [
{
"id": "193f8412-fa0d-4b6d-9648-70bceacd6631",
"name": "任务1-备份-16487239871234",
"original_name": "任务1"
}
]
}
}
导入失败响应示例
{
"code": 400,
"message": "解析任务数据失败: 文件格式无效或已损坏",
"data": null
}
8. 获取单个任务详情
接口描述
获取指定任务的详细信息,包括任务的基本信息、配置参数和详细定义。
请求方式
- HTTP方法: GET
- 接口路径:
/api/vwed-task/{task_id}
请求参数
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
task_id | String | 是 | 任务ID,路径参数 |
响应参数
{
"code": 200,
"message": "操作成功",
"data": {
"id": "193f8412-fa0d-4b6d-9648-70bceacd6629",
"label": "test1",
"version": 19,
"detail": {
"inputParams": [
{
"name": "from",
"type": "String",
"label": "起点",
"required": false,
"defaultValue": "",
"remark": "起始位置"
},
{
"name": "to",
"type": "String",
"label": "终点",
"required": true,
"defaultValue": "",
"remark": "目标位置"
}
],
"outputParams": [],
"rootBlock": {
"id": -1,
"name": "-1",
"blockType": "RootBp",
"inputParams": {},
"children": {}
}
},
"templateName": "userTemplate",
"period": 3000,
"periodicTask": false,
"status": 0,
"ifEnable": 0,
"delay": 3000,
"releaseSites": true,
"createDate": "2023-05-10 14:30:22",
"remark": "测试任务"
}
}
错误响应
{
"code": 404,
"message": "任务不存在",
"data": null
}
或
{
"code": 500,
"message": "获取任务详情失败: 内部服务器错误",
"data": null
}
9. 停止任务定义下的所有任务实例
接口描述
停止指定任务定义下的所有正在运行的任务实例,同时如果该任务是定时任务,则会禁用定时任务功能。
请求方式
- HTTP方法: POST
- 接口路径:
/api/vwed-task/stop-all/{task_def_id}
请求参数
参数名 | 类型 | 必填 | 描述 |
---|---|---|---|
task_def_id | String | 是 | 任务定义ID,路径参数 |
响应参数
{
"code": 200,
"message": "已禁用定时任务并停止了 2/2 个运行中的任务实例",
"data": {
"taskDefId": "193f8412-fa0d-4b6d-9648-70bceacd6629",
"isPeriodic": true,
"totalRunning": 2,
"stoppedCount": 2,
"failedCount": 0,
"failedTasks": []
}
}
部分成功响应示例
{
"code": 200,
"message": "已禁用定时任务并停止了 1/2 个运行中的任务实例",
"data": {
"taskDefId": "193f8412-fa0d-4b6d-9648-70bceacd6629",
"isPeriodic": true,
"totalRunning": 2,
"stoppedCount": 1,
"failedCount": 1,
"failedTasks": [
{
"id": "task-instance-001",
"reason": "任务实例已处于终止状态"
}
]
}
}
错误响应示例
{
"code": 400,
"message": "停止任务失败: 任务定义不存在",
"data": null
}
或
{
"code": 500,
"message": "停止任务失败: 内部服务器错误",
"data": null
}