VWED_server/VWED任务模块接口文档/VWED任务管理接口文档.md
2025-05-12 15:43:21 +08:00

9.7 KiB
Raw Permalink Blame History

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
}