### 1. 获取天风任务列表 #### 接口描述 获取系统中所有任务的列表信息,支持分页查询、条件筛选和排序。 #### 请求方式 - **HTTP方法**: GET - **接口路径**: `/api/vwed-task/list` #### 请求参数 | 参数名 | 类型 | 必填 | 描述 | |-------|------|-----|------| | pageNum | Integer | 否 | 页码,默认为1 | | pageSize | Integer | 否 | 每页记录数,默认为10 | | keyword | String | 否 | 关键字搜索(任务名称) | | status | Integer | 否 | 任务状态筛选 | | sortField | String | 否 | 排序字段 | | sortOrder | String | 否 | 排序方式:asc(升序)、desc(降序) | #### 响应参数 ```json { "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" | #### 请求示例 ```json { "label": "新任务", "taskType": 1, "remark": "测试用任务", "token": "user_authentication_token", "tenantId": "tenant1" } ``` #### 响应参数 ```json { "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"] } ``` #### 响应参数 ```json { "code": 200, "message": "删除成功", "data": null } ``` ### 5. 批量导出任务 #### 接口描述 导出多个指定任务的配置,返回加密的专有格式文件(.vtex)。导出时会自动去除ID、创建时间、更新时间、版本和删除标记等系统相关字段,仅保留任务的功能性配置数据。 #### 请求方式 - **HTTP方法**: POST - **接口路径**: `/api/vwed-task/export-batch` #### 请求参数 | 参数名 | 类型 | 必填 | 描述 | |-------|------|-----|------| | ids | Array | 是 | 要导出的任务ID数组 | #### 请求示例 ```json { "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" | #### 响应参数 ```json { "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" } ] } } ``` #### 部分导入成功响应示例 ```json { "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" } ] } } ``` #### 导入失败响应示例 ```json { "code": 400, "message": "解析任务数据失败: 文件格式无效或已损坏", "data": null } ``` ### 8. 获取单个任务详情 #### 接口描述 获取指定任务的详细信息,包括任务的基本信息、配置参数和详细定义。 #### 请求方式 - **HTTP方法**: GET - **接口路径**: `/api/vwed-task/{task_id}` #### 请求参数 | 参数名 | 类型 | 必填 | 描述 | |-------|------|-----|------| | task_id | String | 是 | 任务ID,路径参数 | #### 响应参数 ```json { "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": "测试任务" } } ``` #### 错误响应 ```json { "code": 404, "message": "任务不存在", "data": null } ``` 或 ```json { "code": 500, "message": "获取任务详情失败: 内部服务器错误", "data": null } ``` ### 9. 停止任务定义下的所有任务实例 #### 接口描述 停止指定任务定义下的所有正在运行的任务实例,同时如果该任务是定时任务,则会禁用定时任务功能。 #### 请求方式 - **HTTP方法**: POST - **接口路径**: `/api/vwed-task/stop-all/{task_def_id}` #### 请求参数 | 参数名 | 类型 | 必填 | 描述 | |-------|------|-----|------| | task_def_id | String | 是 | 任务定义ID,路径参数 | #### 响应参数 ```json { "code": 200, "message": "已禁用定时任务并停止了 2/2 个运行中的任务实例", "data": { "taskDefId": "193f8412-fa0d-4b6d-9648-70bceacd6629", "isPeriodic": true, "totalRunning": 2, "stoppedCount": 2, "failedCount": 0, "failedTasks": [] } } ``` #### 部分成功响应示例 ```json { "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": "任务实例已处于终止状态" } ] } } ``` #### 错误响应示例 ```json { "code": 400, "message": "停止任务失败: 任务定义不存在", "data": null } ``` 或 ```json { "code": 500, "message": "停止任务失败: 内部服务器错误", "data": null } ```