主题
任务管理中心 
任务管理中心说明 
任务管理中心定义 
任务管理中心负责管理各种任务的执行计划,执行过程,执行结果。支持的任务类型包括数据科学笔记,数据集成项目,数据集刷新,截图等。
执行计划结构说明 
| 字段 | 类型 | 描述 | 
|---|---|---|
| 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 | 
任务详细信息说明 
| 字段 | 类型 | 描述 | 
|---|---|---|
| jobClass | STRING | 任务执行时调用的java类名,具体见执行计划任务类型和对应参数设置说明 | 
| jobParams | OBJECT | key/value Object,任务执行时参数信息,具体见执行计划任务类型和对应参数设置说明 | 
| retryTimes | INTEGER | 任务执行失败重试次数 | 
执行计划任务类型和对应参数设置说明 
| 值 | 意义 | 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 | 
| DATA_ALERT | 数据预警 | 数据预警id | com.hengshi.nangaparbat.schedulejob.DataAlertJob | {"dataAlertId":dataAlertId},其中dataAlertId是数据预警id | 
| AI_RAG_EMBEDDING | HQL例子,HQL函数说明等向量化,变成浮点数向量,系统级 | 固定为system | com.hengshi.nangaparbat.schedulejob.AiRagEmbeddingJob | {} | 
| AI_RAG_TOKENIZE | 数据集的字段别名,字段描述,原子指标名称,原子指标描述,字段排重值(distinct values)做分词预处理,app级别 | 应用id | com.hengshi.nangaparbat.schedulejob.AiRagTokenizeJob | {"app":appId},其中appId是应用id | 
| AI_CREATE_EXAMPLE | 根据系统抽象模板和数据集的字段,字段值,指标等信息,生成跟数据集相关的HQL例子,dataset级别 | appId-datasetId,其中appId是应用id,datasetId是数据集id | com.hengshi.nangaparbat.schedulejob.AiCreateExampleJob | {"app":appId,"dataset":datasetId},其中appId是应用id,datasetId是数据集id | 
| AI_RAG_MEASURE_SUBJECT_TOKENIZE | 根据业务指标主题id,对主题下所有业务指标执行分词向量化处理 | subjectId,主题id | com.hengshi.nangaparbat.schedulejob.AiRagMeasureSubjectTokenizeJob | {"subjectId": subjectId},其中subjectId是主题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数组 | 每一个元素是表示一行数据的数组 | 
接口说明 
主要用于创建调度对象的执行计划,或者立即执行,重新执行等。
创建执行计划 
请求URL 
http
POST /api/schedules HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...请求参数 
URL 参数 
| 字段 | 类型 | 是否必须 | 说明 | 
|---|
Request Body 参数 
| 字段 | 类型 | 是否必须 | 描述 | 
|---|---|---|---|
| entityGroup | STRING | 是 | 执行计划的任务类型,见执行计划任务类型和对应参数设置说明 | 
| entityKey | STRING | 是 | 执行计划的唯一标识,见执行计划任务类型和对应参数设置说明 | 
| planItems | OBJECT 数组 | 是 | 执行计划中每条具体的cron计划或者是依赖触发,见任务触发结构说明 | 
| enabled | BOOL | 否 | 默认是true | 
| execDetail | OBJECT | 是 | 执行计划要执行的任务的具体信息,见任务详细信息说明,这个来源于具体的对象,比如数据科学笔记,数据集等 | 
| sync | BOOL | 否 | 是否同步等待任务执行完成 | 
返回对象的格式说明 
| 字段 | 类型 | 说明 | 
|---|---|---|
| version | STRING | 当前系统版本哈希值 | 
| data | OBJECT | 见执行计划结构说明 | 
接口示例: 创建cron类型的执行计划 
http
POST /api/schedules HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
// Request Body:
{
    "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
    }
}http
HTTP/1.1 200 Ok
Content-Type: application/json
{
    "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": "version@9a5e106#6730f0d",
}接口示例: 立即执行或者是重新运行某类任务,这里是notebook 
http
POST /api/schedules HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
// Request Body:
{
    "entityGroup": "NOTEBOOK",
    "entityKey": "1",
    "planItems": [
        {
            "triggerType": "ONCE"
        }
    ],
    "execDetail": {
        "jobClass": "com.hengshi.nangaparbat.schedulejob.NotebookJob",
        "jobParams": {"notebook": 1},
        "retryTimes": 1
    }
}http
HTTP/1.1 200 Ok
Content-Type: application/json
{
    "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": "version@9a5e106#6730f0d",
}根据执行计划id取消执行计划的执行任务 
请求URL 
http
PUT /api/schedules/{scheduleId}/cancel HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...请求参数 
URL 参数 
| 字段 | 类型 | 是否必须 | 说明 | 
|---|
Request Body 参数 
| 字段 | 类型 | 是否必须 | 描述 | 
|---|
返回对象的格式说明 
| 字段 | 类型 | 说明 | 
|---|---|---|
| version | STRING | 当前系统版本哈希值 | 
| code | 错误码 | 请求成功返回0 | 
| msg | STRING | 请求成功返回success | 
接口示例: 
http
PUT /api/schedules/{scheduleId}/cancel HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
// Request Body:
{}http
HTTP/1.1 200 Ok
Content-Type: application/json
{
    "code": 0,
    "msg": "success",
    "version": "version@9a5e106#6730f0d",
}根据body信息取消执行计划的执行任务 
请求URL 
http
POST /api/schedules/cancel HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...请求参数 
URL 参数 
| 字段 | 类型 | 是否必须 | 说明 | 
|---|
Request Body 参数 
| 字段 | 类型 | 是否必须 | 描述 | 
|---|---|---|---|
| entityGroup | STRING | 是 | |
| entityKey | STRING | 是 | 
返回对象的格式说明 
| 字段 | 类型 | 说明 | 
|---|---|---|
| version | STRING | 当前系统版本哈希值 | 
| code | 错误码 | 请求成功返回0 | 
| msg | STRING | 请求成功返回success | 
接口示例: 
http
POST /api/schedules/cancel HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
// Request Body:
{"entityGroup":"PIPELINE","entityKey":"1"}http
HTTP/1.1 200 Ok
Content-Type: application/json
{
    "code": 0,
    "msg": "success",
    "version": "version@9a5e106#6730f0d",
}删除执行计划 
请求URL 
http
DELETE /api/schedules/{scheduleId} HTTP/1.1请求参数 
URL 参数 
| 字段 | 类型 | 是否必须 | 说明 | 
|---|
Request Body 参数 
| 字段 | 类型 | 是否必须 | 描述 | 
|---|
返回对象的格式说明 
| 字段 | 类型 | 说明 | 
|---|---|---|
| version | STRING | 当前系统版本哈希值 | 
| code | 错误码 | 请求成功返回0 | 
| msg | STRING | 请求成功返回success | 
接口示例: 
http
DELETE /api/schedules/{scheduleId} HTTP/1.1http
HTTP/1.1 200 Ok
Content-Type: application/json
{
    "code": 0,
    "msg": "success",
    "version": "version@9a5e106#6730f0d",
}修改执行计划 
主要用于启用/停用,和修改具体触发条目
请求URL 
http
PUT /api/schedules/{scheduleId} HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...请求参数 
URL 参数 
| 字段 | 类型 | 是否必须 | 说明 | 
|---|
Request Body 参数 
只能修改planItems和enabled,修改enabled表示启用或者停用,修改planItems表示修改具体的计划,必须整体修改,整体提交。
| 字段 | 类型 | 是否必须 | 描述 | 
|---|---|---|---|
| planItems | OBJECT 数组 | 可选 | 执行计划中每条具体的cron计划或者是依赖触发条目,见任务触发结构说明,为空或者null,表示删掉所有条目 | 
| enabled | BOOL | 是 | 
返回对象的格式说明 
| 字段 | 类型 | 说明 | 
|---|---|---|
| version | STRING | 当前系统版本哈希值 | 
| data | OBJECT | 见执行计划结构说明 | 
接口示例: 
http
PUT /api/schedules/{scheduleId} HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
// Request Body:
{
    "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"
        }
    ]
}http
HTTP/1.1 200 Ok
Content-Type: application/json
{
    "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": "version@9a5e106#6730f0d",
}启用执行计划 
请求URL 
http
POST /api/schedules/{scheduleId}/enable HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...请求参数 
URL 参数 
| 字段 | 类型 | 是否必须 | 说明 | 
|---|
Request Body 参数 
| 字段 | 类型 | 是否必须 | 描述 | 
|---|
返回对象的格式说明 
| 字段 | 类型 | 说明 | 
|---|---|---|
| version | STRING | 当前系统版本哈希值 | 
接口示例: 
http
POST /api/schedules/{scheduleId}/enable HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
// Request Body:
{}http
HTTP/1.1 200 Ok
Content-Type: application/json
{
    "code": 0,
    "msg": "success",
    "version": "version@9a5e106#6730f0d",
}停用执行计划 
请求URL 
http
POST /api/schedules/{scheduleId}/disable HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...请求参数 
URL 参数 
| 字段 | 类型 | 是否必须 | 说明 | 
|---|
Request Body 参数 
| 字段 | 类型 | 是否必须 | 描述 | 
|---|
返回对象的格式说明 
| 字段 | 类型 | 说明 | 
|---|---|---|
| version | STRING | 当前系统版本哈希值 | 
接口示例: 
http
POST /api/schedules/{scheduleId}/disable HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
// Request Body:
{}http
HTTP/1.1 200 Ok
Content-Type: application/json
{
    "code": 0,
    "msg": "success",
    "version": "version@9a5e106#6730f0d",
}查询执行计划 
请求URL 
http
GET /api/schedules/{scheduleId} HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...请求参数 
URL 参数 
| 字段 | 类型 | 是否必须 | 说明 | 
|---|
Request Body 参数 
| 字段 | 类型 | 是否必须 | 描述 | 
|---|
返回对象的格式说明 
| 字段 | 类型 | 说明 | 
|---|---|---|
| version | STRING | 当前系统版本哈希值 | 
| data | OBJECT | 见执行计划结构说明 | 
接口示例: 
http
GET /api/schedules/{scheduleId} HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...http
HTTP/1.1 200 Ok
Content-Type: application/json
{
    "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": "version@9a5e106#6730f0d",
}查询执行计划列表 
请求URL 
http
GET /api/schedules HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...请求参数 
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 数组 | 数组的元素是一个执行计划,见执行计划结构说明 | 
接口示例: 
http
GET /api/schedules?entityKey=1&entityGroup=NOTEBOOK HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...http
HTTP/1.1 200 Ok
Content-Type: application/json
{
    "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": "version@9a5e106#6730f0d",
    "totalHits": 1,
    "offset": 0
}查询任务执行进度信息的用户列表 
请求URL 
http
GET /api/schedules/users HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...请求参数 
URL 参数 
| 字段 | 类型 | 是否必须 | 说明 | 
|---|---|---|---|
| entityKey | STRING | 可选 | 意义同执行计划结构说明 中的entityKey | 
| entityGroup | STRING | 是 | 意义同执行计划结构说明 中的entityGroup | 
| q | STRING | 可选 | 搜索关键字 | 
| jobStatusList | STRING | 可选 | 任务状态列表,英文逗号(,)分割 | 
Request Body 参数 
| 字段 | 类型 | 是否必须 | 描述 | 
|---|
返回对象的格式说明 
| 字段 | 类型 | 说明 | 
|---|---|---|
| version | STRING | 当前系统版本哈希值 | 
| data | OBJECT 数组 | 数组的元素是一个用户信息 | 
接口示例: 
http
GET /api/schedules/users?entityGroup=DATASET HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...http
HTTP/1.1 200 Ok
Content-Type: application/json
{
  "version": "version@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":[]
    }
  ]
 }查询任务执行进度信息 
请求URL 
http
GET /api/contexts/{contextId} HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...请求参数 
URL 参数 
| 字段 | 类型 | 是否必须 | 说明 | 
|---|
Request Body 参数 
| 字段 | 类型 | 是否必须 | 描述 | 
|---|
返回对象的格式说明 
| 字段 | 类型 | 说明 | 
|---|---|---|
| version | STRING | 当前系统版本哈希值 | 
| data | OBJECT | 任务执行进度信息,见任务执行进度信息结构说明 | 
接口示例: 
http
GET /api/contexts/1 HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...http
HTTP/1.1 200 Ok
Content-Type: application/json
{
    "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": "version@9a5e106#6730f0d",
}查询任务执行进度信息列表 
请求URL 
http
GET /api/contexts HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...请求参数 
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 数组 | 数组的元素是一个任务执行进度信息,见任务执行进度信息结构说明 | 
接口示例: 
http
GET /api/contexts?entityKey=1&entityGroup=NOTEBOOK HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...http
HTTP/1.1 200 Ok
Content-Type: application/json
{
    "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": "version@9a5e106#6730f0d",
    "totalHits": 1,
    "offset": 0
}查询任务执行进度信息的用户列表 
请求URL 
http
GET /api/contexts/users HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...请求参数 
URL 参数 
| 字段 | 类型 | 是否必须 | 说明 | 
|---|---|---|---|
| entityKey | STRING | 可选 | 意义同执行计划结构说明 中的entityKey | 
| entityGroup | STRING | 是 | 意义同执行计划结构说明 中的entityGroup | 
| jobStatus | STRING | 可选 | 任务执行的状态,见任务执行的状态说明 | 
| q | STRING | 可选 | 搜索关键字 | 
| jobStatusList | STRING | 可选 | 任务状态列表,英文逗号(,)分割 | 
Request Body 参数 
| 字段 | 类型 | 是否必须 | 描述 | 
|---|
返回对象的格式说明 
| 字段 | 类型 | 说明 | 
|---|---|---|
| version | STRING | 当前系统版本哈希值 | 
| data | OBJECT 数组 | 数组的元素是一个用户信息 | 
接口示例: 
http
GET /api/contexts/users?entityGroup=DATASET HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...http
HTTP/1.1 200 Ok
Content-Type: application/json
{
  "version": "version@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":[]
    }
  ]
 }查询任务执行进度信息的日志 
请求URL 
http
GET /api/contexts/{contextId}/logs HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...请求参数 
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 | 
接口示例: 
http
GET /api/contexts/{contextId}/logs HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...http
HTTP/1.1 200 Ok
Content-Type: application/json
{
    "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": "version@9a5e106#6730f0d",
}查询任务执行进度信息的执行结果 
请求URL 
http
GET /api/contexts/{contextId}/results HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...请求参数 
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 | 
接口示例: 
http
GET /api/contexts/{contextId}/results HTTP/1.1
Accept: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...http
HTTP/1.1 200 Ok
Content-Type: application/json
{
    "code": 0,
    "data": [
        {
            "subKey": "1",
            "result": {"data": [...],"schema": [...]}
        },
        {
            "subKey": "2",
            "result": {"data": [...],"schema": [...]}
        }
    ],
    "done": true,
    "msg": "success",
    "version": "version@9a5e106#6730f0d",
}执行计划批量接口 
批量删除执行计划 
http
POST /api/batch/operation/delete HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
// Request Body:
{
  "items": [
    {
      "objectType": "plan",
      "queryString": null, // 如果是全选,超过一页的,传这个,填查询的queryString,idSet不用传
      "idSet": [
        1,
        2
      ]
    }
  ]
}http
HTTP/1.1 200 Ok
Content-Type: application/json
{
  "code": 0,
  "msg": "success",
  "data": {
    "items": [
      {
        "objectType": "app",
        "successIdSet": [
          1,
          2
        ]
      }
    ]
  },
  "chartDataStartTimeMillis": 0
}批量开启或者关闭执行计划 
http
POST /api/batch/operation/update HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
// Request Body:
{
  "items": [
    {
      "objectType": "plan",
      "queryString": null, // 如果是全选,超过一页的,传这个,填查询的queryString,idSet不用传
      "idSet": [
        1,
        2
      ]
    }
  ],
  "args": {
    "enabled": true // true表示开启,false表示关闭
  }
}http
HTTP/1.1 200 Ok
Content-Type: application/json
{
  "code": 0,
  "msg": "success",
  "data": {
    "items": [
      {
        "objectType": "plan",
        "successIdSet": [
          1,
          2
        ]
      }
    ]
  },
  "chartDataStartTimeMillis": 0
}批量执行执行计划 
http
POST /api/batch/operation/execute HTTP/1.1
Content-Type: application/json
Cookie: csrf=183f1c4...; sid=26ee552d...; _USER_SESSION_ID=f2a01083...
// Request Body:
{
  "items": [
    {
      "objectType": "plan",
      "queryString": null, // 如果是全选,超过一页的,传这个,填查询的queryString,idSet不用传
      "idSet": [
        1,
        2
      ]
    }
  ]
}http
HTTP/1.1 200 Ok
Content-Type: application/json
{
  "code": 0,
  "msg": "success",
  "data": {
    "items": [
      {
        "objectType": "app",
        "successIdSet": [
          1,
          2
        ]
      }
    ]
  },
  "chartDataStartTimeMillis": 0
}