1. 任务管理中心
1.1. 任务管理中心说明
1.1.1. 任务管理中心定义
任务管理中心负责管理各种任务的执行计划,执行过程,执行结果。支持的任务类型包括数据科学笔记,数据集成项目,数据集刷新,截图等。
执行计划结构说明
| 字段 | 
类型 | 
描述 | 
| id | 
INTEGER | 
执行计划的 id | 
| entityGroup | 
STRING | 
执行计划的任务类型,见执行计划任务类型和对应参数设置说明 | 
| entityKey | 
STRING | 
执行计划的唯一标识,见执行计划任务类型和对应参数设置说明 | 
| execDetail | 
OBJECT | 
执行计划要执行的任务的具体信息,见任务详细信息说明,这个来源于具体的对象,比如数据科学笔记,数据集等 | 
| createdAt | 
DATETIME | 
执行计划创建的时间 | 
| createdBy | 
INTEGER | 
执行计划创建用户的 id | 
| updatedAt | 
DATETIME | 
执行计划最后修改的时间 | 
| updatedBy | 
INTEGER | 
执行计划最后修改用户的 id | 
| enabled | 
BOOL | 
是否启用,包括 true 和 false | 
| entityCreatedBy | 
INTEGER | 
执行计划需要执行的任务对象的创建用户 id | 
| execFrequency | 
STRING | 
执行频率,见计划表达式的生成类型 | 
| startAt | 
DATETIME | 
最后一次任务执行开始执行的时间 | 
| stopAt | 
DATETIME | 
最后一次任务执行结束执行的时间 | 
| jobStatus | 
STRING | 
最后一次任务执行的状态,见任务执行的状态说明 | 
| contextId | 
INTEGER | 
立即执行的时候,会返回对应的任务执行进度信息id,其他情况为null | 
| title | 
STRING | 
执行计划需要执行的任务对象的标题 | 
| entityCreatedByName | 
STRING | 
执行计划需要执行的任务对象的创建用户名称 | 
| nextStartAt | 
DATETIME | 
下次执行时间 | 
| costTime | 
INTEGER | 
最后一次任务执行耗时,单位是秒 | 
| planItems | 
OBJECT 数组 | 
执行计划中每条具体的cron计划或者是依赖触发,见任务触发结构说明 | 
| path | 
STRING | 
应用的路径 | 
| importType | 
INTEGER | 
数据集引擎开关,0为未开启,1为开启 | 
| diskUsage | 
INTEGER | 
数据集大小,单位是字节 | 
| datasetCount | 
INTEGER | 
数据集个数 | 
| datasetType | 
STRING | 
数据集类型,包括sql(sql查询),connection(数据连接),fusion(多表联合),union(数据合并),aggregate(数据聚合) | 
| isVirtual | 
BOOL | 
数据集的执行计划是否是虚拟的,虚拟的用于在app scope的数据集列表里面选择包含或者排除数据集。 | 
| updateMethod | 
STRING | 
数据更新方法,更新方法,ALL表示全量,INCREMENTAL表示增量 | 
| updateMethodSwitchable | 
BOOL | 
本数据集是否支持设置增量更新 | 
任务触发结构说明
| 字段 | 
类型 | 
描述 | 
| id | 
INTEGER | 
任务触发条目的 id | 
| planId | 
INTEGER | 
任务触发条目所属的执行计划的 id | 
| triggerType | 
STRING | 
任务触发类型,见任务触发类型说明 | 
| cronDesc | 
STRING | 
cron表达式,仅triggerType是CRON_JOB的时候需要,格式需要符合Quartz的要求 | 
| cronType | 
STRING | 
cron表达式的生成类型,仅triggerType是CRON_JOB的时候需要,见计划表达式的生成类型 | 
| timeZone | 
STRING | 
cron表达式对应的时区,仅triggerType是CRON_JOB的时候需要 | 
| triggerByJobs | 
OBJECT 数组 | 
其他任务列表,任意一个执行完后触发本job,仅triggerType是DEPENDENCY的时候需要 | 
| triggerByJobs[].entityKey | 
STRING | 
依赖的其他任务的唯一标识 | 
| triggerByJobs[].entityGroup | 
STRING | 
依赖的其他任务的类型 | 
| createdAt | 
DATETIME | 
任务触发创建的时间 | 
| createdBy | 
INTEGER | 
任务触发创建用户的 id | 
| updatedAt | 
DATETIME | 
任务触发最后修改的时间 | 
| updatedBy | 
INTEGER | 
任务触发最后修改用户的 id | 
任务详细信息说明
执行计划任务类型和对应参数设置说明
| 值 | 
意义 | 
entityKey | 
javaClass | 
jobParams | 
| NOTEBOOK | 
数据科学笔记 | 
数据科学id | 
com.hengshi.nangaparbat.schedulejob.NotebookJob | 
{"notebook": notebookId},其中notebookId是数据科学的id | 
| PIPELINE | 
数据集成项目 | 
数据集成id | 
com.hengshi.nangaparbat.schedulejob.PipelineJob | 
{"pipeline": pipelineId},其中pipelineId是数据集成的id | 
| DATASET | 
数据集刷新 | 
appId-datasetId,其中appId是应用id,datasetId是数据集id | 
com.hengshi.nangaparbat.schedulejob.DatasetJob | 
{"app":appId,"dataset":datasetId},其中appId是应用id,datasetId是数据集id | 
| SCREENSHOT | 
截图 | 
 | 
 | 
 | 
| APP_EMAIL | 
应用邮件自动推送 | 
应用id | 
com.hengshi.nangaparbat.schedulejob.AppEmailJob | 
{"app":appId},其中appId是应用id | 
| APP_REFRESH | 
应用数据集刷新 | 
应用id | 
com.hengshi.nangaparbat.schedulejob.AppDatasetRefreshJob | 
{"app":appId},其中appId是应用id | 
| DB_BATCH_SYNC | 
数据批量同步 | 
数据批量同步项目id | 
com.hengshi.nangaparbat.schedulejob.DBBatchSyncJob | 
{"syncProj":syncProjId},其中syncProjId是数据批量同步项目id | 
任务触发类型说明
| 值 | 
意义 | 
| CRON_JOB | 
cron表达式 | 
| DEPENDENCY | 
被其他任务触发 | 
| ONCE | 
人工触发 | 
计划表达式的生成类型
| 值 | 
意义 | 
| MINUTELY | 
每分钟, | 
| HOURLY | 
每小时,前端页面提供生成表达式的便捷方式 | 
| DAILY | 
每天,前端页面提供生成表达式的便捷方式 | 
| WEEKLY | 
每周,前端页面提供生成表达式的便捷方式 | 
| MONTHLY | 
每月,前端页面提供生成表达式的便捷方式 | 
| CRON | 
用户自定义 | 
任务执行进度信息结构说明
| 字段 | 
类型 | 
描述 | 
| id | 
INTEGER | 
任务执行的 id | 
| planId | 
INTEGER | 
执行计划的 id | 
| jobStatus | 
STRING | 
任务执行的状态,见任务执行的状态说明 | 
| createdAt | 
DATETIME | 
任务执行创建的时间 | 
| createdBy | 
INTEGER | 
任务执行创建用户的 id | 
| scheduledAt | 
DATETIME | 
任务执行被scheduler开始安排的时间 | 
| startAt | 
DATETIME | 
任务执行开始执行的时间 | 
| stopAt | 
DATETIME | 
任务执行结束执行的时间 | 
| planItemId | 
INTEGER | 
触发本次运行的触发条目 id | 
| jobLogId | 
INTEGER | 
执行日志的 id | 
| jobResultId | 
INTEGER | 
执行结果的 id | 
| heartbeatTime | 
DATETIME | 
任务最新心跳时间 | 
| execDetail | 
OBJECT | 
执行计划要执行的任务的具体信息,见任务详细信息说明,这个来源于具体的对象,比如数据科学笔记,数据集等 | 
| entityGroup | 
STRING | 
执行计划的任务类型,见执行计划任务类型和对应参数设置说明 | 
| entityKey | 
STRING | 
执行计划的唯一标识,见执行计划任务类型和对应参数设置说明 | 
| title | 
STRING | 
执行计划需要执行的任务对象的标题 | 
| entityCreatedByName | 
STRING | 
执行计划需要执行的任务对象的创建用户名称 | 
| planItem | 
OBJECT | 
任务执行是被哪个触发条目触发,见任务触发结构说明 | 
| costTime | 
INTEGER | 
最后一次任务执行耗时,单位是秒 | 
| path | 
STRING | 
应用的路径 | 
| importType | 
INTEGER | 
数据集引擎开关,0为未开启,1为开启 | 
| diskUsage | 
INTEGER | 
数据集大小,单位是字节 | 
| datasetCount | 
INTEGER | 
数据集个数 | 
任务执行的状态说明
| 值 | 
意义 | 
| NONE | 
全新任务,无状态 | 
| PENDING | 
已调度,等待执行 | 
| RUNNING | 
正在执行 | 
| SUCCESSFUL | 
执行成功 | 
| FAILED | 
执行失败 | 
| CANCELLED | 
执行取消 | 
任务执行结果说明
| 字段 | 
类型 | 
描述 | 
| schema | 
OBJECT数组 | 
每一个元素表示一个字段的属性,与数据集的字段结构相同 | 
| data | 
OBJECT数组 | 
每一个元素是表示一行数据的数组 | 
1.2. 接口说明
主要用于创建调度对象的执行计划,或者立即执行,重新执行等。
1.2.1. 创建执行计划
请求URL
POST /api/schedules
需要认证:是
请求参数
URL 参数
Request Body 参数
| 字段 | 
类型 | 
是否必须 | 
描述 | 
| entityGroup | 
STRING | 
是 | 
执行计划的任务类型,见执行计划任务类型和对应参数设置说明 | 
| entityKey | 
STRING | 
是 | 
执行计划的唯一标识,见执行计划任务类型和对应参数设置说明 | 
| planItems | 
OBJECT 数组 | 
是 | 
执行计划中每条具体的cron计划或者是依赖触发,见任务触发结构说明 | 
| enabled | 
BOOL | 
否 | 
默认是true | 
| execDetail | 
OBJECT | 
是 | 
执行计划要执行的任务的具体信息,见任务详细信息说明,这个来源于具体的对象,比如数据科学笔记,数据集等 | 
| sync | 
BOOL | 
否 | 
是否同步等待任务执行完成 | 
返回对象的格式说明
| 字段 | 
类型 | 
说明 | 
| version | 
STRING | 
当前系统版本哈希值 | 
| data | 
OBJECT | 
见执行计划结构说明 | 
接口示例: 创建cron类型的执行计划
POST /api/schedules
{
    "entityGroup": "NOTEBOOK",
    "entityKey": "1",
    "planItems": [
        {
            "triggerType": "CRON_JOB",
            "cronDesc": "0 15 0 ? * 1",
            "cronType": "WEEKLY",
            "timeZone": "GMT+08:00"
        },
        {
            "triggerType": "CRON_JOB",
            "cronDesc": "*/30 * * * * ?",
            "cronType": "CRON",
            "timeZone": "GMT+08:00"
        }
    ],
    "execDetail": {
        "jobClass": "com.hengshi.nangaparbat.schedulejob.NotebookJob",
        "jobParams": {"notebook": 1},
        "retryTimes": 1
    }
}
返回
{
    "code": 0,
    "data": {
        "id": 1,
        "entityGroup": "NOTEBOOK",
        "entityKey": "1",
        "enabled": true,
        "planItems": [
            {
                "id": 1,
                "triggerType": "CRON_JOB",
                "cronDesc": "0 15 0 ? * 1",
                "cronType": "WEEKLY",
                "timeZone": "GMT+08:00"
            },
            {
                "id": 2,
                "triggerType": "CRON_JOB",
                "cronDesc": "*/30 * * * * ?",
                "cronType": "CRON",
                "timeZone": "GMT+08:00"
            }
        ],
        "execDetail": {
            "jobClass": "com.hengshi.nangaparbat.schedulejob.NotebookJob",
            "jobParams": {"notebook": 1},
            "retryTimes": 1
        },
        "title": "notebook1",
        "createdAt": "2020-03-05 15:01:02",
        "createdBy": 1,
        "updatedAt": "2020-03-05 15:01:02",
        "updatedBy": 1
    },
    "msg": "success",
    "version": "3.1-SNAPSHOT@@git.commit.id.abbrev@#1234567"
}
接口示例: 立即执行或者是重新运行某类任务,这里是notebook
POST /api/schedules
{
    "entityGroup": "NOTEBOOK",
    "entityKey": "1",
    "planItems": [
        {
            "triggerType": "ONCE"
        }
    ],
    "execDetail": {
        "jobClass": "com.hengshi.nangaparbat.schedulejob.NotebookJob",
        "jobParams": {"notebook": 1},
        "retryTimes": 1
    }
}
返回
{
    "code": 0,
    "data": {
        "id": 1,
        "entityGroup": "NOTEBOOK",
        "entityKey": "1",
        "enabled": true,
        "planItems": [
            {
                "id": 3,
                "triggerType": "ONCE",
                "planId": 1
            }
        ],
        "execDetail": {
            "jobClass": "com.hengshi.nangaparbat.schedulejob.NotebookJob",
            "jobParams": {"notebook": 1},
            "retryTimes": 1
        },
        "title": "notebook1",
        "createdAt": "2020-03-05 15:01:02",
        "createdBy": 1,
        "updatedAt": "2020-03-05 15:01:02",
        "updatedBy": 1
    },
    "msg": "success",
    "version": "3.1-SNAPSHOT@@git.commit.id.abbrev@#1234567"
}
1.2.2. 根据执行计划id取消执行计划的执行任务
请求URL
PUT /api/schedules/{scheduleId}/cancel
需要认证:是
请求参数
URL 参数
Request Body 参数
返回对象的格式说明
| 字段 | 
类型 | 
说明 | 
| version | 
STRING | 
当前系统版本哈希值 | 
| code | 
错误码 | 
请求成功返回0 | 
| msg | 
STRING | 
请求成功返回success | 
接口示例:
PUT /api/schedules/{scheduleId}/cancel
{}
返回
{
    "code": 0,
    "msg": "success",
    "version": "3.1-SNAPSHOT@@git.commit.id.abbrev@#1234567"
}
1.2.3. 根据body信息取消执行计划的执行任务
请求URL
POST /api/schedules/cancel
需要认证:是
请求参数
URL 参数
Request Body 参数
| 字段 | 
类型 | 
是否必须 | 
描述 | 
| entityGroup | 
STRING | 
是 | 
 | 
| entityKey | 
STRING | 
是 | 
返回对象的格式说明
| 字段 | 
类型 | 
说明 | 
| version | 
STRING | 
当前系统版本哈希值 | 
| code | 
错误码 | 
请求成功返回0 | 
| msg | 
STRING | 
请求成功返回success | 
接口示例:
POST /api/schedules/cancel
{"entityGroup":"PIPELINE","entityKey":"1"}
返回
{
    "code": 0,
    "msg": "success",
    "version": "4.0-SNAPSHOT@@git.commit.id.abbrev@#1234567"
}
1.2.4. 删除执行计划
请求URL
DELETE /api/schedules/{scheduleId}
需要认证:是
请求参数
URL 参数
Request Body 参数
返回对象的格式说明
| 字段 | 
类型 | 
说明 | 
| version | 
STRING | 
当前系统版本哈希值 | 
| code | 
错误码 | 
请求成功返回0 | 
| msg | 
STRING | 
请求成功返回success | 
接口示例:
DELETE /api/schedules/{scheduleId}
返回
{
    "code": 0,
    "msg": "success",
    "version": "3.1-SNAPSHOT@@git.commit.id.abbrev@#1234567"
}
1.2.5. 修改执行计划
主要用于启用/停用,和修改具体触发条目
请求URL
PUT /api/schedules/{scheduleId}
需要认证:是
请求参数
URL 参数
Request Body 参数
只能修改planItems和enabled,修改enabled表示启用或者停用,修改planItems表示修改具体的计划,必须整体修改,整体提交。
| 字段 | 
类型 | 
是否必须 | 
描述 | 
| planItems | 
OBJECT 数组 | 
可选 | 
执行计划中每条具体的cron计划或者是依赖触发条目,见任务触发结构说明,为空或者null,表示删掉所有条目 | 
| enabled | 
BOOL | 
是 | 
返回对象的格式说明
| 字段 | 
类型 | 
说明 | 
| version | 
STRING | 
当前系统版本哈希值 | 
| data | 
OBJECT | 
见执行计划结构说明 | 
接口示例:
PUT /api/schedules/{scheduleId}
{
    "enabled": false,
    "planItems": [
        {
            "id": 1,
            "triggerType": "CRON_JOB",
            "cronDesc": "0 15 0 ? * 1",
            "cronType": "WEEKLY",
            "timeZone": "GMT+08:00"
        },
        {
            "id": 2,
            "triggerType": "CRON_JOB",
            "cronDesc": "*/30 * * * * ?",
            "cronType": "CRON",
            "timeZone": "GMT+08:00"
        }
    ]
}
返回
{
    "code": 0,
    "data": {
        "id": 1,
        "entityGroup": "NOTEBOOK",
        "entityKey": "1",
        "enabled": false,
        "planItems": [
            {
                "id": 1,
                "triggerType": "CRON_JOB",
                "cronDesc": "0 15 0 ? * 1",
                "cronType": "WEEKLY",
                "timeZone": "GMT+08:00"
            },
            {
                "id": 2,
                "triggerType": "CRON_JOB",
                "cronDesc": "*/30 * * * * ?",
                "cronType": "CRON",
                "timeZone": "GMT+08:00"
            }
        ],
        "execDetail": {
            "jobClass": "com.hengshi.nangaparbat.schedulejob.NotebookJob",
            "jobParams": {"notebook": 1},
            "retryTimes": 1
        },
        "title": "notebook1",
        "createdAt": "2020-03-05 15:01:02",
        "createdBy": 1,
        "updatedAt": "2020-03-05 15:01:02",
        "updatedBy": 1
    },
    "msg": "success",
    "version": "3.1-SNAPSHOT@@git.commit.id.abbrev@#1234567"
}
1.2.6. 启用执行计划
请求URL
POST /api/schedules/{scheduleId}/enable
需要认证:是
请求参数
URL 参数
Request Body 参数
返回对象的格式说明
| 字段 | 
类型 | 
说明 | 
| version | 
STRING | 
当前系统版本哈希值 | 
接口示例:
POST /api/schedules/{scheduleId}/enable
{}
返回
{
    "code": 0,
    "msg": "success",
    "version": "3.1-SNAPSHOT@@git.commit.id.abbrev@#1234567"
}
1.2.7. 停用执行计划
请求URL
POST /api/schedules/{scheduleId}/disable
需要认证:是
请求参数
URL 参数
Request Body 参数
返回对象的格式说明
| 字段 | 
类型 | 
说明 | 
| version | 
STRING | 
当前系统版本哈希值 | 
接口示例:
POST /api/schedules/{scheduleId}/disable
{}
返回
{
    "code": 0,
    "msg": "success",
    "version": "3.1-SNAPSHOT@@git.commit.id.abbrev@#1234567"
}
1.2.8. 查询执行计划
请求URL
GET /api/schedules/{scheduleId}
需要认证:是
请求参数
URL 参数
Request Body 参数
返回对象的格式说明
| 字段 | 
类型 | 
说明 | 
| version | 
STRING | 
当前系统版本哈希值 | 
| data | 
OBJECT | 
见执行计划结构说明 | 
接口示例:
GET /api/schedules/{scheduleId}
返回
{
    "code": 0,
    "data": {
        "id": 1,
        "entityGroup": "NOTEBOOK",
        "entityKey": "1",
        "enabled": false,
        "planItems": [
            {
                "id": 1,
                "triggerType": "CRON_JOB",
                "cronDesc": "0 15 0 ? * 1",
                "cronType": "WEEKLY",
                "timeZone": "GMT+08:00"
            },
            {
                "id": 2,
                "triggerType": "CRON_JOB",
                "cronDesc": "*/30 * * * * ?",
                "cronType": "CRON",
                "timeZone": "GMT+08:00"
            }
        ],
        "execDetail": {
            "jobClass": "com.hengshi.nangaparbat.schedulejob.NotebookJob",
            "jobParams": {"notebook": 1},
            "retryTimes": 1
        },
        "title": "notebook1",
        "createdAt": "2020-03-05 15:01:02",
        "createdBy": 1,
        "updatedAt": "2020-03-05 15:01:02",
        "updatedBy": 1
    },
    "msg": "success",
    "version": "3.1-SNAPSHOT@@git.commit.id.abbrev@#1234567"
}
1.2.9. 查询执行计划列表
请求URL
GET /api/schedules
需要认证:是
请求参数
URL 参数
| 字段 | 
类型 | 
是否必须 | 
说明 | 
| offset | 
INTEGER | 
可选 | 
分页偏移量,默认是0 | 
| limit | 
INTEGER | 
可选 | 
分页获取个数,默认是10 | 
| entityKey | 
STRING | 
可选 | 
意义同执行计划结构说明  中的entityKey | 
| entityGroup | 
STRING | 
是 | 
意义同执行计划结构说明  中的entityGroup | 
| q | 
STRING | 
可选 | 
搜索关键字 | 
| entityCreatedByList | 
STRING | 
可选 | 
创建者用户id列表,英文逗号(,)分割 | 
| jobStatusList | 
STRING | 
可选 | 
任务状态列表,英文逗号(,)分割 | 
Request Body 参数
返回对象的格式说明
| 字段 | 
类型 | 
说明 | 
| version | 
STRING | 
当前系统版本哈希值 | 
| totalHits | 
INTEGER | 
总个数 | 
| totalDiskUsage | 
INTEGER | 
数据集空间总大小,单位的byte | 
| totalDatasets | 
INTEGER | 
数据集个数 | 
| offset | 
INTEGER | 
当前分页偏移量 | 
| data | 
OBJECT 数组 | 
数组的元素是一个执行计划,见执行计划结构说明 | 
接口示例:
GET /api/schedules?entityKey=1&entityGroup=NOTEBOOK
返回
{
    "code": 0,
    "data": [
        {
            "id": 1,
            "entityGroup": "NOTEBOOK",
            "entityKey": "1",
            "enabled": false,
            "planItems": [
                {
                    "id": 1,
                    "triggerType": "CRON_JOB",
                    "cronDesc": "0 15 0 ? * 1",
                    "cronType": "WEEKLY",
                    "timeZone": "GMT+08:00"
                },
                {
                    "id": 2,
                    "triggerType": "CRON_JOB",
                    "cronDesc": "*/30 * * * * ?",
                    "cronType": "CRON",
                    "timeZone": "GMT+08:00"
                }
            ],
            "execDetail": {
                "jobClass": "com.hengshi.nangaparbat.schedulejob.NotebookJob",
                "jobParams": {"notebook": 1},
                "retryTimes": 1
            },
            "title": "notebook1",
            "createdAt": "2020-03-05 15:01:02",
            "createdBy": 1,
            "updatedAt": "2020-03-05 15:01:02",
            "updatedBy": 1
        }
    ],
    "msg": "success",
    "version": "3.1-SNAPSHOT@@git.commit.id.abbrev@#1234567",
    "totalHits": 1,
    "offset": 0
}
1.2.10. 查询任务执行进度信息的用户列表
请求URL
GET /api/schedules/users
需要认证:是
请求参数
URL 参数
| 字段 | 
类型 | 
是否必须 | 
说明 | 
| entityKey | 
STRING | 
可选 | 
意义同执行计划结构说明  中的entityKey | 
| entityGroup | 
STRING | 
是 | 
意义同执行计划结构说明  中的entityGroup | 
| q | 
STRING | 
可选 | 
搜索关键字 | 
| jobStatusList | 
STRING | 
可选 | 
任务状态列表,英文逗号(,)分割 | 
Request Body 参数
返回对象的格式说明
| 字段 | 
类型 | 
说明 | 
| version | 
STRING | 
当前系统版本哈希值 | 
| data | 
OBJECT 数组 | 
数组的元素是一个用户信息 | 
接口示例:
GET /api/schedules/users?entityGroup=DATASET
返回
{
  "version":"3.3-SNAPSHOT@9a5e106#6730f0d",
  "code":0,
  "msg":"success",
  "data":[
    {
      "id":7,
      "name":"admin",
      "email":"admin@1.com",
      "description":"",
      "avatar":"",
      "enable":true,
      "userType":"internal",
      "loginName":"admin",
      "config":{
        "sys.email":{
          "source":"SYSTEM_DEFINED",
          "value":"admin@1.com",
          "type":"string"
        },
        "sys.login_name":{
          "source":"SYSTEM_DEFINED",
          "value":"admin",
          "type":"string"
        },
        "sys.mobile":{
          "source":"SYSTEM_DEFINED",
          "type":"string"
        },
        "sys.id":{
          "source":"SYSTEM_DEFINED",
          "value":7,
          "type":"number"
        },
        "sys.loginName":{
          "source":"SYSTEM_DEFINED",
          "value":"admin",
          "type":"string"
        },
        "sys.name":{
          "source":"SYSTEM_DEFINED",
          "value":"admin",
          "type":"string"
        }
      },
      "options":{},
      "roles":[{"id":4,"name":"data viewer","description":"data viewer"}],
      "salt":"5a5dd366-4142-4c6b-b749-74d6c9564d94",
      "organizations":[]
    }
  ]
 }
1.2.11. 查询任务执行进度信息
请求URL
GET /api/contexts/{contextId}
需要认证:是
请求参数
URL 参数
Request Body 参数
返回对象的格式说明
| 字段 | 
类型 | 
说明 | 
| version | 
STRING | 
当前系统版本哈希值 | 
| data | 
OBJECT | 
任务执行进度信息,见任务执行进度信息结构说明 | 
接口示例:
GET /api/contexts/1
返回
{
    "code": 0,
    "data": {
        "id": 1,
        "planId": 1,
        "entityGroup": "NOTEBOOK",
        "entityKey": "1",
        "jobStatus": "SUCCESSFUL",
        "createdAt": "2020-03-05 15:01:02",
        "createdBy": 1,
        "scheduleAt": "2020-03-05 15:01:03",
        "startAt": "2020-03-05 15:01:04",
        "stopAt": "2020-03-05 15:01:06",
        "planItem": {
            "id": 1,
            "triggerType": "CRON_JOB",
            "cronDesc": "0 15 0 * * 0",
            "cronType": "WEEKLY",
            "timeZone": "GMT+08:00"
        },
        "jobLogId": 1,
        "jobResultId": 1,
        "execDetail": {
            "jobClass": "com.hengshi.nangaparbat.schedulejob.NotebookJob",
            "jobParams": {"notebook": 1},
            "retryTimes": 1
        }
    },
    "msg": "success",
    "version": "3.1-SNAPSHOT@@git.commit.id.abbrev@#1234567"
}
1.2.12. 查询任务执行进度信息列表
请求URL
GET /api/contexts
需要认证:是
请求参数
URL 参数
| 字段 | 
类型 | 
是否必须 | 
说明 | 
| offset | 
INTEGER | 
可选 | 
分页偏移量,默认是0 | 
| limit | 
INTEGER | 
可选 | 
分页获取个数,默认是10 | 
| entityKey | 
STRING | 
可选 | 
意义同执行计划结构说明  中的entityKey | 
| entityGroup | 
STRING | 
是 | 
意义同执行计划结构说明  中的entityGroup | 
| jobStatus | 
STRING | 
可选 | 
任务执行的状态,见任务执行的状态说明 | 
| q | 
STRING | 
可选 | 
搜索关键字 | 
| entityCreatedByList | 
STRING | 
可选 | 
创建者用户id列表,英文逗号(,)分割 | 
| jobStatusList | 
STRING | 
可选 | 
任务状态列表,英文逗号(,)分割 | 
Request Body 参数
返回对象的格式说明
| 字段 | 
类型 | 
说明 | 
| version | 
STRING | 
当前系统版本哈希值 | 
| totalHits | 
INTEGER | 
总个数 | 
| offset | 
INTEGER | 
当前分页偏移量 | 
| data | 
OBJECT 数组 | 
数组的元素是一个任务执行进度信息,见任务执行进度信息结构说明 | 
接口示例:
GET /api/contexts?entityKey=1&entityGroup=NOTEBOOK
返回
{
    "code": 0,
    "data": [
        {
            "id": 1,
            "planId": 1,
            "entityGroup": "NOTEBOOK",
            "entityKey": "1",
            "jobStatus": "SUCCESSFUL",
            "createdAt": "2020-03-05 15:01:02",
            "createdBy": 1,
            "scheduleAt": "2020-03-05 15:01:03",
            "startAt": "2020-03-05 15:01:04",
            "stopAt": "2020-03-05 15:01:06",
            "planItem": {
                "id": 1,
                "triggerType": "CRON_JOB",
                "cronDesc": "0 15 0 * * 0",
                "cronType": "WEEKLY",
                "timeZone": "GMT+08:00"
            },
            "jobLogId": 1,
            "jobResultId": 1,
            "execDetail": {
                "jobClass": "com.hengshi.nangaparbat.schedulejob.NotebookJob",
                "jobParams": {"notebook": 1},
                "retryTimes": 1
            }
        }
    ],
    "msg": "success",
    "version": "3.1-SNAPSHOT@@git.commit.id.abbrev@#1234567",
    "totalHits": 1,
    "offset": 0
}
1.2.13. 查询任务执行进度信息的用户列表
请求URL
GET /api/contexts/users
需要认证:是
请求参数
URL 参数
| 字段 | 
类型 | 
是否必须 | 
说明 | 
| entityKey | 
STRING | 
可选 | 
意义同执行计划结构说明  中的entityKey | 
| entityGroup | 
STRING | 
是 | 
意义同执行计划结构说明  中的entityGroup | 
| jobStatus | 
STRING | 
可选 | 
任务执行的状态,见任务执行的状态说明 | 
| q | 
STRING | 
可选 | 
搜索关键字 | 
| jobStatusList | 
STRING | 
可选 | 
任务状态列表,英文逗号(,)分割 | 
Request Body 参数
返回对象的格式说明
| 字段 | 
类型 | 
说明 | 
| version | 
STRING | 
当前系统版本哈希值 | 
| data | 
OBJECT 数组 | 
数组的元素是一个用户信息 | 
接口示例:
GET /api/contexts/users?entityGroup=DATASET
返回
{
  "version":"3.3-SNAPSHOT@9a5e106#6730f0d",
  "code":0,
  "msg":"success",
  "data":[
    {
      "id":7,
      "name":"admin",
      "email":"admin@1.com",
      "description":"",
      "avatar":"",
      "enable":true,
      "userType":"internal",
      "loginName":"admin",
      "config":{
        "sys.email":{
          "source":"SYSTEM_DEFINED",
          "value":"admin@1.com",
          "type":"string"
        },
        "sys.login_name":{
          "source":"SYSTEM_DEFINED",
          "value":"admin",
          "type":"string"
        },
        "sys.mobile":{
          "source":"SYSTEM_DEFINED",
          "type":"string"
        },
        "sys.id":{
          "source":"SYSTEM_DEFINED",
          "value":7,
          "type":"number"
        },
        "sys.loginName":{
          "source":"SYSTEM_DEFINED",
          "value":"admin",
          "type":"string"
        },
        "sys.name":{
          "source":"SYSTEM_DEFINED",
          "value":"admin",
          "type":"string"
        }
      },
      "options":{},
      "roles":[{"id":4,"name":"data viewer","description":"data viewer"}],
      "salt":"5a5dd366-4142-4c6b-b749-74d6c9564d94",
      "organizations":[]
    }
  ]
 }
1.2.14. 查询任务执行进度信息的日志
请求URL
GET /api/contexts/{contextId}/logs
需要认证:是
请求参数
URL 参数
| 字段 | 
类型 | 
是否必须 | 
说明 | 
| block | 
BOOL | 
可选 | 
是否阻塞,为true表示等到执行完再返回,否则返回空data,默认是true | 
Request Body 参数
返回对象的格式说明
| 字段 | 
类型 | 
说明 | 
| version | 
STRING | 
当前系统版本哈希值 | 
| data | 
OBJECT 数组 | 
数组的元素是一个包含subKey和logs的对象 | 
| data[].subKey | 
STRING | 
和具体的任务相关,notebook的话,是一个paragraph的id | 
| data[].logs | 
STRING 数组 | 
每个数组元素是一条日志 | 
| done | 
BOOL | 
当查询是非阻塞的时候,未完成的任务返回false | 
接口示例:
GET /api/contexts/{contextId}/logs
返回
{
    "code": 0,
    "data": [
        {
            "subKey": "1",
            "logs": [
                "2020-03-03 17:10:08.13 [77] [pipelineId: 1 jobId: 1 nodeId: 2 taskId: 1] task start",
                "2020-03-03 17:10:08.409 [77] [pipelineId: 1 jobId: 1 nodeId: 2 taskId: 1] task done"
            ]
        },
        {
            "subKey": "2",
            "logs": [
                "2020-03-03 17:10:08.13 [77] [pipelineId: 1 jobId: 1 nodeId: 2 taskId: 1] task start",
                "2020-03-03 17:10:08.409 [77] [pipelineId: 1 jobId: 1 nodeId: 2 taskId: 1] task done"
            ]
        }
    ],
    "done": true,
    "msg": "success",
    "version": "3.1-SNAPSHOT@@git.commit.id.abbrev@#1234567"
}
1.2.15. 查询任务执行进度信息的执行结果
请求URL
GET /api/contexts/{contextId}/results
需要认证:是
请求参数
URL 参数
| 字段 | 
类型 | 
是否必须 | 
说明 | 
| block | 
BOOL | 
可选 | 
是否阻塞,为true表示等到执行完再返回,否则返回空data,默认是true | 
Request Body 参数
返回对象的格式说明
| 字段 | 
类型 | 
说明 | 
| version | 
STRING | 
当前系统版本哈希值 | 
| data | 
OBJECT 数组 | 
数组的元素是一个包含subKey和result的对象 | 
| data[].subKey | 
STRING | 
和具体的任务相关,notebook的话,是一个paragraph的id | 
| data[].result | 
OBJECT | 
和数据集的data查询结果类似,见任务执行结果说明 | 
| done | 
BOOL | 
当查询是非阻塞的时候,未完成的任务返回false | 
接口示例:
GET /api/contexts/{contextId}/results
返回
{
    "code": 0,
    "data": [
        {
            "subKey": "1",
            "result": {"data": [...],"schema": [...]}
        },
        {
            "subKey": "2",
            "result": {"data": [...],"schema": [...]}
        }
    ],
    "done": true,
    "msg": "success",
    "version": "3.1-SNAPSHOT@@git.commit.id.abbrev@#1234567"
}