REST API 指南
本节介绍 Spring Cloud Data Flow REST API。
43. 概述
Spring Cloud Data Flow 提供了一个 REST API,允许您访问服务器的所有方面。 事实上,Spring Cloud Data Flow shell 是该 API 的一流使用者。
如果您计划将 REST API 与 Java 一起使用,则应考虑使用
提供了内部使用 REST API 的 Java 客户端 ()。DataflowTemplate |
43.1. HTTP 动词
Spring Cloud Data Flow 在使用 HTTP 动词时,会尝试尽可能严格遵守标准 HTTP 和 REST 约定,如下表所述:
动词 | 用法 |
---|---|
|
用于检索资源。 |
|
用于创建新资源。 |
|
用于更新现有资源,包括部分更新。也用于
隐含 概念的资源,例如 Tasks。 |
|
用于删除现有资源。 |
43.2. HTTP 状态代码
Spring Cloud Data Flow 在使用 HTTP 状态代码时,会尝试尽可能严格遵守标准 HTTP 和 REST 约定,如下表所示:
状态代码 | 用法 |
---|---|
|
请求已成功完成。 |
|
已成功创建新资源。资源的 URI 可从响应的标头中获得。 |
|
已成功应用对现有资源的更新。 |
|
请求格式不正确。响应正文包含提供更多信息的错误描述。 |
|
请求的资源不存在。 |
|
请求的资源已存在。例如,任务已存在或流已在部署 |
|
在无法停止或重新启动任务执行的情况下返回。 |
43.3. 标头
每个响应都有以下标头:
名字 | 描述 |
---|---|
|
有效负载的 Content-Type,例如 |
43.4. 错误
路径 | 类型 | 描述 |
---|---|---|
|
|
发生的 HTTP 错误,例如 |
|
|
错误原因的描述 |
|
|
发出请求的路径 |
|
|
HTTP 状态代码,例如 |
|
|
发生错误的时间(以毫秒为单位) |
43.5. 超媒体
Spring Cloud Data Flow 使用超媒体,并且资源包含指向其他资源的链接
在他们的回答中。
响应采用 Hypertext Application from resource-to-resource Language (HAL) 格式。
链接可以在密钥下方找到。
API 的用户不应自行创建 URI。
相反,他们应该使用上述链接进行导航。_links
44. 资源
API 包括以下资源:
44.1. 索引
该索引提供了 Spring Cloud Data Flow 的 REST API 的入口点。 以下主题提供了更多详细信息:
44.1.1. 访问索引
使用请求访问索引。GET
请求结构
GET / HTTP/1.1
Host: localhost:9393
示例请求
$ curl 'http://localhost:9393/' -i -X GET
响应结构
路径 | 类型 | 描述 |
---|---|---|
|
|
指向其他资源的链接 |
|
|
每次在此 REST API 中实施更改时递增 |
|
|
链接到审核记录 |
|
|
链接到仪表板 |
|
|
链接到流/定义 |
|
|
链接到 streams/definitions/definition |
|
|
链接流/定义/定义已模板化 |
|
|
链接到 runtime/apps |
|
|
链接到 runtime/apps/{appId} |
|
|
链接 runtime/apps 已模板化 |
|
|
链接到 runtime/apps/{appId}/instances |
|
|
链接 runtime/apps/{appId}/instances 已模板化 |
|
|
链接到 runtime/apps/{appId}/instances/{instanceId} |
|
|
链接 runtime/apps/{appId}/instances/{instanceId} 已模板化 |
|
|
链接到 runtime/streams |
|
|
链接运行时/流已模板化 |
|
|
链接到 runtime/streams/{streamNames} |
|
|
链接 runtime/streams/{streamNames} 已模板化 |
|
|
链接到流/日志 |
|
|
链接到 streams/logs/{streamName} |
|
|
链接到 streams/logs/{streamName}/{appName} |
|
|
链接 streams/logs/{streamName} 已模板化 |
|
|
链接 streams/logs/{streamName}/{appName} 已模板化 |
|
|
链接到流/部署 |
|
|
链接到流/部署 |
|
|
链接 streams/deployments/{name} 已模板化 |
|
|
链接 streams/deployments/{name} 已模板化 |
|
|
链接 streams/deployments/{name} 已模板化 |
|
|
链接 streams/deployments/{name} 已模板化 |
|
|
链接 streams/deployments/{name} 已模板化 |
|
|
链接到 streams/deployments/deployment |
|
|
链接流/部署/部署已模板化 |
|
|
链接到 streams/deployments/manifest/{name}/{version} |
|
|
链接流/deployments/manifest/{name}/{version} 已模板化 |
|
|
链接到 streams/deployments/history/{name} |
|
|
链接流/部署/历史记录已模板化 |
|
|
链接到 streams/deployments/rollback/{name}/{version} |
|
|
链接流/deployments/rollback/{name}/{version} 已模板化 |
|
|
链接到 streams/deployments/update/{name} |
|
|
链接 streams/deployments/update/{name} 已模板化 |
|
|
链接到 streams/deployments/platform/list |
|
|
链接到 streams/deployments/scale/{streamName}/{appName}/instances/{count} |
|
|
链接流/deployments/scale/{streamName}/{appName}/instances/{count} 已模板化 |
|
|
链接到 streams/validation |
|
|
链接流/验证已模板化 |
|
|
链接到任务/平台 |
|
|
链接到任务/定义 |
|
|
链接到 tasks/definitions/definition |
|
|
链接任务/定义/定义已模板化 |
|
|
链接到任务/执行 |
|
|
指向 tasks/executions/name 的链接 |
|
|
链接 tasks/executions/name 已模板化 |
|
|
链接到 tasks/executions/current |
|
|
链接到 tasks/executions/execution |
|
|
链接任务/执行/执行已模板化 |
|
|
链接到 tasks/info/executions |
|
|
链接任务/信息已模板化 |
|
|
链接到任务/日志 |
|
|
链接任务/日志已模板化 |
|
|
链接到任务/执行/计划 |
|
|
链接到 tasks/schedules/instances |
|
|
链接任务/计划/实例已模板化 |
|
|
链接到 tasks/validation |
|
|
链接任务/验证已模板化 |
|
|
链接到作业/执行 |
|
|
链接到 jobs/thinexecutions |
|
|
链接到 jobs/executions/name |
|
|
链接 jobs/executions/name 已模板化 |
|
|
链接到 jobs/executions/status |
|
|
链接作业/执行/状态已模板化 |
|
|
链接到 jobs/thinexecutions/name |
|
|
链接 jobs/executions/name 已模板化 |
|
|
链接到 jobs/thinexecutions/jobInstanceId |
|
|
链接 jobs/executions/jobInstanceId 已模板化 |
|
|
链接到 jobs/thinexecutions/taskExecutionId |
|
|
链接 jobs/executions/taskExecutionId 已模板化 |
|
|
链接到 jobs/executions/execution |
|
|
链接作业/执行/执行已模板化 |
|
|
链接到 jobs/executions/execution/steps |
|
|
链接 jobs/executions/execution/steps 已模板化 |
|
|
链接到 jobs/executions/execution/steps/step |
|
|
链接 jobs/executions/execution/steps/step 已模板化 |
|
|
链接到 jobs/executions/execution/steps/step/progress |
|
|
链接 jobs/executions/execution/steps/step/progress 已模板化 |
|
|
指向 jobs/instances/name 的链接 |
|
|
链接 jobs/instances/name 已模板化 |
|
|
链接到 jobs/instances/instance |
|
|
链接 jobs/instances/instance 已模板化 |
|
|
链接到 tools/parseTaskTextToGraph |
|
|
链接到 tools/convertTaskGraphToText |
|
|
链接到应用程序 |
|
|
链接到关于 |
|
|
链接到 completions/stream |
|
|
链接完成数/流已模板化 |
|
|
链接到完成/任务 |
|
|
链接完成数/任务已模板化 |
示例响应
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 7064
{
"_links" : {
"dashboard" : {
"href" : "http://localhost:9393/dashboard"
},
"audit-records" : {
"href" : "http://localhost:9393/audit-records"
},
"streams/definitions" : {
"href" : "http://localhost:9393/streams/definitions"
},
"streams/definitions/definition" : {
"href" : "http://localhost:9393/streams/definitions/{name}",
"templated" : true
},
"streams/validation" : {
"href" : "http://localhost:9393/streams/validation/{name}",
"templated" : true
},
"runtime/streams" : {
"href" : "http://localhost:9393/runtime/streams{?names}",
"templated" : true
},
"runtime/streams/{streamNames}" : {
"href" : "http://localhost:9393/runtime/streams/{streamNames}",
"templated" : true
},
"runtime/apps" : {
"href" : "http://localhost:9393/runtime/apps"
},
"runtime/apps/{appId}" : {
"href" : "http://localhost:9393/runtime/apps/{appId}",
"templated" : true
},
"runtime/apps/{appId}/instances" : {
"href" : "http://localhost:9393/runtime/apps/{appId}/instances",
"templated" : true
},
"runtime/apps/{appId}/instances/{instanceId}" : {
"href" : "http://localhost:9393/runtime/apps/{appId}/instances/{instanceId}",
"templated" : true
},
"streams/deployments" : {
"href" : "http://localhost:9393/streams/deployments"
},
"streams/deployments/{name}{?reuse-deployment-properties}" : {
"href" : "http://localhost:9393/streams/deployments/{name}?reuse-deployment-properties=false",
"templated" : true
},
"streams/deployments/{name}" : {
"href" : "http://localhost:9393/streams/deployments/{name}",
"templated" : true
},
"streams/deployments/history/{name}" : {
"href" : "http://localhost:9393/streams/deployments/history/{name}",
"templated" : true
},
"streams/deployments/manifest/{name}/{version}" : {
"href" : "http://localhost:9393/streams/deployments/manifest/{name}/{version}",
"templated" : true
},
"streams/deployments/platform/list" : {
"href" : "http://localhost:9393/streams/deployments/platform/list"
},
"streams/deployments/rollback/{name}/{version}" : {
"href" : "http://localhost:9393/streams/deployments/rollback/{name}/{version}",
"templated" : true
},
"streams/deployments/update/{name}" : {
"href" : "http://localhost:9393/streams/deployments/update/{name}",
"templated" : true
},
"streams/deployments/deployment" : {
"href" : "http://localhost:9393/streams/deployments/{name}",
"templated" : true
},
"streams/deployments/scale/{streamName}/{appName}/instances/{count}" : {
"href" : "http://localhost:9393/streams/deployments/scale/{streamName}/{appName}/instances/{count}",
"templated" : true
},
"streams/logs" : {
"href" : "http://localhost:9393/streams/logs"
},
"streams/logs/{streamName}" : {
"href" : "http://localhost:9393/streams/logs/{streamName}",
"templated" : true
},
"streams/logs/{streamName}/{appName}" : {
"href" : "http://localhost:9393/streams/logs/{streamName}/{appName}",
"templated" : true
},
"tasks/platforms" : {
"href" : "http://localhost:9393/tasks/platforms"
},
"tasks/definitions" : {
"href" : "http://localhost:9393/tasks/definitions"
},
"tasks/definitions/definition" : {
"href" : "http://localhost:9393/tasks/definitions/{name}",
"templated" : true
},
"tasks/executions" : {
"href" : "http://localhost:9393/tasks/executions"
},
"tasks/executions/name" : {
"href" : "http://localhost:9393/tasks/executions{?name}",
"templated" : true
},
"tasks/executions/current" : {
"href" : "http://localhost:9393/tasks/executions/current"
},
"tasks/executions/execution" : {
"href" : "http://localhost:9393/tasks/executions/{id}",
"templated" : true
},
"tasks/validation" : {
"href" : "http://localhost:9393/tasks/validation/{name}",
"templated" : true
},
"tasks/info/executions" : {
"href" : "http://localhost:9393/tasks/info/executions{?completed,name}",
"templated" : true
},
"tasks/logs" : {
"href" : "http://localhost:9393/tasks/logs/{taskExternalExecutionId}{?platformName}",
"templated" : true
},
"tasks/schedules" : {
"href" : "http://localhost:9393/tasks/schedules"
},
"tasks/schedules/instances" : {
"href" : "http://localhost:9393/tasks/schedules/instances/{taskDefinitionName}",
"templated" : true
},
"jobs/executions" : {
"href" : "http://localhost:9393/jobs/executions"
},
"jobs/executions/name" : {
"href" : "http://localhost:9393/jobs/executions{?name}",
"templated" : true
},
"jobs/executions/status" : {
"href" : "http://localhost:9393/jobs/executions{?status}",
"templated" : true
},
"jobs/executions/execution" : {
"href" : "http://localhost:9393/jobs/executions/{id}",
"templated" : true
},
"jobs/executions/execution/steps" : {
"href" : "http://localhost:9393/jobs/executions/{jobExecutionId}/steps",
"templated" : true
},
"jobs/executions/execution/steps/step" : {
"href" : "http://localhost:9393/jobs/executions/{jobExecutionId}/steps/{stepId}",
"templated" : true
},
"jobs/executions/execution/steps/step/progress" : {
"href" : "http://localhost:9393/jobs/executions/{jobExecutionId}/steps/{stepId}/progress",
"templated" : true
},
"jobs/instances/name" : {
"href" : "http://localhost:9393/jobs/instances{?name}",
"templated" : true
},
"jobs/instances/instance" : {
"href" : "http://localhost:9393/jobs/instances/{id}",
"templated" : true
},
"tools/parseTaskTextToGraph" : {
"href" : "http://localhost:9393/tools"
},
"tools/convertTaskGraphToText" : {
"href" : "http://localhost:9393/tools"
},
"jobs/thinexecutions" : {
"href" : "http://localhost:9393/jobs/thinexecutions"
},
"jobs/thinexecutions/name" : {
"href" : "http://localhost:9393/jobs/thinexecutions{?name}",
"templated" : true
},
"jobs/thinexecutions/jobInstanceId" : {
"href" : "http://localhost:9393/jobs/thinexecutions{?jobInstanceId}",
"templated" : true
},
"jobs/thinexecutions/taskExecutionId" : {
"href" : "http://localhost:9393/jobs/thinexecutions{?taskExecutionId}",
"templated" : true
},
"apps" : {
"href" : "http://localhost:9393/apps"
},
"about" : {
"href" : "http://localhost:9393/about"
},
"completions/stream" : {
"href" : "http://localhost:9393/completions/stream{?start,detailLevel}",
"templated" : true
},
"completions/task" : {
"href" : "http://localhost:9393/completions/task{?start,detailLevel}",
"templated" : true
}
},
"api.revision" : 14
}
链接
索引的主要元素是链接,因为它们允许您遍历 API 并执行所需的功能:
关系 | 描述 |
---|---|
|
访问元信息,包括启用的功能、安全信息、版本信息 |
|
访问仪表板 UI |
|
提供审计跟踪信息 |
|
处理已注册的应用程序 |
|
公开 Stream 的 DSL 完成功能 |
|
公开 Task 的 DSL 完成功能 |
|
提供 JobExecution 资源 |
|
提供不包含步骤执行的 JobExecution 瘦资源 |
|
提供特定 JobExecution 的详细信息 |
|
提供 JobExecution 的步骤 |
|
返回特定步骤的详细信息 |
|
提供特定步骤的进度信息 |
|
按任务名称检索任务执行 |
|
按任务状态检索任务执行 |
|
按任务名称检索任务执行,不包含步骤执行 |
|
按作业实例 ID 检索任务执行,不包括步骤执行 |
|
按任务执行 ID 检索任务执行,不包括步骤执行 |
|
为特定作业实例提供作业实例资源 |
|
为特定作业名称提供作业实例资源 |
|
公开流运行时状态 |
|
公开给定流名称的流运行时状态 |
|
提供运行时应用程序资源 |
|
公开特定应用的运行时状态 |
|
提供应用程序实例的状态 |
|
提供特定应用程序实例的状态 |
|
提供任务定义资源 |
|
提供特定任务定义的详细信息 |
|
提供任务定义的验证 |
|
返回任务执行并允许启动任务 |
|
提供正在运行的任务的当前计数 |
|
提供任务执行信息 |
|
提供任务的进度信息 |
|
提供特定任务的计划信息 |
|
返回给定 Task name 的所有任务执行 |
|
提供特定任务执行的详细信息 |
|
提供用于启动任务的平台账户。可以通过添加 'schedulesEnabled=true 的请求参数来筛选结果以显示支持计划的平台 |
|
检索任务应用程序日志 |
|
公开 Streams 资源 |
|
处理特定的 Stream 定义 |
|
提供流定义的验证 |
|
提供 Stream 部署操作 |
|
请求流定义的部署信息 |
|
请求流定义的部署信息 |
|
请求(取消)部署现有流定义 |
|
返回 release 版本的清单信息 |
|
以列表形式获取流的部署历史记录或此版本的版本 |
|
将流回滚到流的上一个版本或特定版本 |
|
更新流。 |
|
支持的部署平台列表 |
|
增加或减少所选流的应用程序实例数 |
|
检索流的应用程序日志 |
|
检索流的应用程序日志 |
|
检索流的特定应用程序日志 |
|
将任务定义解析为图形结构 |
|
将图形格式转换为 DSL 文本格式 |
44.2. 服务器元信息
服务器元信息端点提供有关服务器本身的更多信息。 以下主题提供了更多详细信息:
44.2.1. 检索有关服务器的信息
请求返回 Spring Cloud Data Flow 的元信息,包括:GET
-
运行时环境信息
-
有关已启用哪些功能的信息
-
Spring Cloud Data Flow Server 的依赖信息
-
安全信息
请求结构
GET /about HTTP/1.1
Accept: application/json
Host: localhost:9393
示例请求
$ curl 'http://localhost:9393/about' -i -X GET \
-H 'Accept: application/json'
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2595
{
"featureInfo" : {
"analyticsEnabled" : true,
"streamsEnabled" : true,
"tasksEnabled" : true,
"schedulesEnabled" : true,
"monitoringDashboardType" : "NONE"
},
"versionInfo" : {
"implementation" : {
"name" : "${info.app.name}",
"version" : "${info.app.version}"
},
"core" : {
"name" : "Spring Cloud Data Flow Core",
"version" : "2.8.3"
},
"dashboard" : {
"name" : "Spring Cloud Dataflow UI",
"version" : "3.1.3"
},
"shell" : {
"name" : "Spring Cloud Data Flow Shell",
"version" : "2.8.3",
"url" : "https://repo1.maven.org/maven2/org/springframework/cloud/spring-cloud-dataflow-shell/2.8.3/spring-cloud-dataflow-shell-2.8.3.jar"
}
},
"securityInfo" : {
"authenticationEnabled" : false,
"authenticated" : false,
"username" : null,
"roles" : [ ]
},
"runtimeEnvironment" : {
"appDeployer" : {
"deployerImplementationVersion" : "Test Version",
"deployerName" : "Test Server",
"deployerSpiVersion" : "2.7.3",
"javaVersion" : "1.8.0_302",
"platformApiVersion" : "",
"platformClientVersion" : "",
"platformHostVersion" : "",
"platformSpecificInfo" : {
"default" : "local"
},
"platformType" : "Skipper Managed",
"springBootVersion" : "2.4.11",
"springVersion" : "5.3.10"
},
"taskLaunchers" : [ {
"deployerImplementationVersion" : "2.6.3",
"deployerName" : "LocalTaskLauncher",
"deployerSpiVersion" : "2.6.3",
"javaVersion" : "1.8.0_302",
"platformApiVersion" : "Linux 5.8.0-1042-azure",
"platformClientVersion" : "5.8.0-1042-azure",
"platformHostVersion" : "5.8.0-1042-azure",
"platformSpecificInfo" : { },
"platformType" : "Local",
"springBootVersion" : "2.4.11",
"springVersion" : "5.3.10"
}, {
"deployerImplementationVersion" : "2.6.3",
"deployerName" : "LocalTaskLauncher",
"deployerSpiVersion" : "2.6.3",
"javaVersion" : "1.8.0_302",
"platformApiVersion" : "Linux 5.8.0-1042-azure",
"platformClientVersion" : "5.8.0-1042-azure",
"platformHostVersion" : "5.8.0-1042-azure",
"platformSpecificInfo" : { },
"platformType" : "Local",
"springBootVersion" : "2.4.11",
"springVersion" : "5.3.10"
} ]
},
"monitoringDashboardInfo" : {
"url" : "",
"refreshInterval" : 15,
"dashboardType" : "NONE",
"source" : "default-scdf-source"
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/about"
}
}
}
44.3. 注册的应用程序
已注册的应用程序终端节点提供有关向 Spring Cloud Data Flow 服务器注册的应用程序的信息。 以下主题提供了更多详细信息:
44.3.1. 列出应用程序
请求列出了 Spring Cloud Data Flow 已知的所有应用程序。
以下主题提供了更多详细信息:GET
请求结构
GET /apps?search=&type=source&defaultVersion=true&page=0&size=10&sort=name%2CASC HTTP/1.1
Accept: application/json
Host: localhost:9393
请求参数
参数 | 描述 |
---|---|
|
对名称执行的搜索字符串(可选) |
|
将返回的应用程序限制为应用程序的类型。[app, source, processor, sink, task] 之一 |
|
布尔标志,用于仅检索默认版本的应用程序(可选) |
|
从零开始的页码(可选) |
|
列表中的排序 (可选) |
|
请求的页面大小(可选) |
示例请求
$ curl 'http://localhost:9393/apps?search=&type=source&defaultVersion=true&page=0&size=10&sort=name%2CASC' -i -X GET \
-H 'Accept: application/json'
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1097
{
"_embedded" : {
"appRegistrationResourceList" : [ {
"name" : "http",
"type" : "source",
"uri" : "maven://org.springframework.cloud.stream.app:http-source-rabbit:1.2.0.RELEASE",
"version" : "1.2.0.RELEASE",
"defaultVersion" : true,
"versions" : [ "1.2.0.RELEASE" ],
"label" : null,
"_links" : {
"self" : {
"href" : "http://localhost:9393/apps/source/http/1.2.0.RELEASE"
}
}
}, {
"name" : "time",
"type" : "source",
"uri" : "maven://org.springframework.cloud.stream.app:time-source-rabbit:1.2.0.RELEASE",
"version" : "1.2.0.RELEASE",
"defaultVersion" : true,
"versions" : [ "1.2.0.RELEASE" ],
"label" : null,
"_links" : {
"self" : {
"href" : "http://localhost:9393/apps/source/time/1.2.0.RELEASE"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/apps?page=0&size=10&sort=name,asc"
}
},
"page" : {
"size" : 10,
"totalElements" : 2,
"totalPages" : 1,
"number" : 0
}
}
44.3.2. 获取有关特定应用程序的信息
请求 on 获取有关特定应用程序的信息。
以下主题提供了更多详细信息:GET
/apps/<type>/<name>
请求结构
GET /apps/source/http?exhaustive=false HTTP/1.1
Accept: application/json
Host: localhost:9393
请求参数
参数 | 描述 |
---|---|
|
返回所有应用程序属性,包括常见的 Spring Boot 属性 |
路径参数
/apps/{type}/{name}
参数 | 描述 |
---|---|
|
要查询的应用程序的类型。[app, source, processor, sink, task] 之一 |
|
要查询的应用程序的名称 |
示例请求
$ curl 'http://localhost:9393/apps/source/http?exhaustive=false' -i -X GET \
-H 'Accept: application/json'
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2076
{
"name" : "http",
"type" : "source",
"uri" : "maven://org.springframework.cloud.stream.app:http-source-rabbit:1.2.0.RELEASE",
"version" : "1.2.0.RELEASE",
"defaultVersion" : true,
"versions" : null,
"label" : null,
"options" : [ {
"id" : "http.path-pattern",
"name" : "path-pattern",
"type" : "java.lang.String",
"description" : "An Ant-Style pattern to determine which http requests will be captured.",
"shortDescription" : "An Ant-Style pattern to determine which http requests will be captured.",
"defaultValue" : "/",
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "http.mapped-request-headers",
"name" : "mapped-request-headers",
"type" : "java.lang.String[]",
"description" : "Headers that will be mapped.",
"shortDescription" : "Headers that will be mapped.",
"defaultValue" : null,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "http.secured",
"name" : "secured",
"type" : "java.lang.Boolean",
"description" : "Secure or not HTTP source path.",
"shortDescription" : "Secure or not HTTP source path.",
"defaultValue" : false,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
}, {
"id" : "server.port",
"name" : "port",
"type" : "java.lang.Integer",
"description" : "Server HTTP port.",
"shortDescription" : "Server HTTP port.",
"defaultValue" : null,
"hints" : {
"keyHints" : [ ],
"keyProviders" : [ ],
"valueHints" : [ ],
"valueProviders" : [ ]
},
"deprecation" : null,
"deprecated" : false
} ],
"shortDescription" : null,
"inboundPortNames" : [ ],
"outboundPortNames" : [ ]
}
44.3.3. 注册新应用程序
请求 on 允许注册新应用程序。
以下主题提供了更多详细信息:POST
/apps/<type>/<name>
请求结构
POST /apps/source/http HTTP/1.1
Host: localhost:9393
Content-Type: application/x-www-form-urlencoded
uri=maven%3A%2F%2Forg.springframework.cloud.stream.app%3Ahttp-source-rabbit%3A1.1.0.RELEASE
请求参数
参数 | 描述 |
---|---|
|
应用程序位所在的 URI |
|
可以找到应用程序元数据 jar 的 URI |
|
如果已存在具有相同名称和类型的注册,则必须为 true,否则将发生错误 |
路径参数
/apps/{type}/{name}
参数 | 描述 |
---|---|
|
要注册的应用程序类型。[app, source, processor, sink, task] 之一 |
|
要注册的应用程序的名称 |
示例请求
$ curl 'http://localhost:9393/apps/source/http' -i -X POST \
-d 'uri=maven%3A%2F%2Forg.springframework.cloud.stream.app%3Ahttp-source-rabbit%3A1.1.0.RELEASE'
响应结构
HTTP/1.1 201 Created
44.3.4. 使用 版本
请求 on 允许注册新应用程序。
以下主题提供了更多详细信息:POST
/apps/<type>/<name>/<version>
请求结构
POST /apps/source/http/1.1.0.RELEASE HTTP/1.1
Host: localhost:9393
Content-Type: application/x-www-form-urlencoded
uri=maven%3A%2F%2Forg.springframework.cloud.stream.app%3Ahttp-source-rabbit%3A1.1.0.RELEASE
请求参数
参数 | 描述 |
---|---|
|
应用程序位所在的 URI |
|
可以找到应用程序元数据 jar 的 URI |
|
如果已存在具有相同名称和类型的注册,则必须为 true,否则将发生错误 |
路径参数
/apps/{type}/{name}/{version:.+}
参数 | 描述 |
---|---|
|
要注册的应用程序类型。[app, source, processor, sink, task] 之一(可选) |
|
要注册的应用程序的名称 |
|
要注册的应用程序版本 |
示例请求
$ curl 'http://localhost:9393/apps/source/http/1.1.0.RELEASE' -i -X POST \
-d 'uri=maven%3A%2F%2Forg.springframework.cloud.stream.app%3Ahttp-source-rabbit%3A1.1.0.RELEASE'
响应结构
HTTP/1.1 201 Created
44.3.5. 批量注册应用程序
请求 on 允许一次注册多个应用程序。
以下主题提供了更多详细信息:POST
/apps
请求结构
POST /apps HTTP/1.1
Host: localhost:9393
Content-Type: application/x-www-form-urlencoded
apps=source.http%3Dmaven%3A%2F%2Forg.springframework.cloud.stream.app%3Ahttp-source-rabbit%3A1.1.0.RELEASE&force=false
请求参数
参数 | 描述 |
---|---|
|
URI,可在其中获取包含注册的属性文件。独占 . |
|
内联注册集。独占 . |
|
如果已存在具有相同名称和类型的注册,则必须为 true,否则将发生错误 |
示例请求
$ curl 'http://localhost:9393/apps' -i -X POST \
-d 'apps=source.http%3Dmaven%3A%2F%2Forg.springframework.cloud.stream.app%3Ahttp-source-rabbit%3A1.1.0.RELEASE&force=false'
响应结构
HTTP/1.1 201 Created
Content-Type: application/hal+json
Content-Length: 658
{
"_embedded" : {
"appRegistrationResourceList" : [ {
"name" : "http",
"type" : "source",
"uri" : "maven://org.springframework.cloud.stream.app:http-source-rabbit:1.1.0.RELEASE",
"version" : "1.1.0.RELEASE",
"defaultVersion" : true,
"versions" : null,
"label" : null,
"_links" : {
"self" : {
"href" : "http://localhost:9393/apps/source/http/1.1.0.RELEASE"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/apps?page=0&size=20"
}
},
"page" : {
"size" : 20,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
44.3.6. 设置默认应用程序版本
对于具有相同 和 的应用程序,您可以注册多个版本。
在这种情况下,您可以选择其中一个版本作为默认应用程序。name
type
以下主题提供了更多详细信息:
请求结构
PUT /apps/source/http/1.2.0.RELEASE HTTP/1.1
Accept: application/json
Host: localhost:9393
路径参数
/apps/{type}/{name}/{version:.+}
参数 | 描述 |
---|---|
|
应用程序的类型。[app, source, processor, sink, task] 之一 |
|
应用程序的名称 |
|
应用程序的版本 |
示例请求
$ curl 'http://localhost:9393/apps/source/http/1.2.0.RELEASE' -i -X PUT \
-H 'Accept: application/json'
响应结构
HTTP/1.1 202 Accepted
44.3.7. 取消注册应用程序
上的请求将取消注册以前注册的应用程序。
以下主题提供了更多详细信息:DELETE
/apps/<type>/<name>
请求结构
DELETE /apps/source/http/1.2.0.RELEASE HTTP/1.1
Host: localhost:9393
路径参数
/apps/{type}/{name}/{version}
参数 | 描述 |
---|---|
|
要取消注册的应用程序类型。[app, source, processor, sink, task] 之一 |
|
要取消注册的应用程序的名称 |
|
要取消注册的应用程序版本(可选) |
示例请求
$ curl 'http://localhost:9393/apps/source/http/1.2.0.RELEASE' -i -X DELETE
响应结构
HTTP/1.1 200 OK
44.4. 审计记录
Audit records 端点提供有关审计记录的信息。以下主题提供了更多详细信息:
44.4.1. 列出所有审计记录
的 audit records 端点允许您检索审计跟踪信息。
以下主题提供了更多详细信息:
请求结构
GET /audit-records?page=0&size=10&operations=STREAM&actions=CREATE&fromDate=2000-01-01T00%3A00%3A00&toDate=2099-01-01T00%3A00%3A00 HTTP/1.1
Host: localhost:9393
请求参数
参数 | 描述 |
---|---|
|
从零开始的页码(可选) |
|
请求的页面大小(可选) |
|
以逗号分隔的审计操作列表(可选) |
|
以逗号分隔的审核操作列表(可选) |
|
起始日期过滤器(例如:2019-02-03T00:00:30)(可选) |
|
日期筛选器 (ex.: 2019-02-03T00:00:30) (可选) |
示例请求
$ curl 'http://localhost:9393/audit-records?page=0&size=10&operations=STREAM&actions=CREATE&fromDate=2000-01-01T00%3A00%3A00&toDate=2099-01-01T00%3A00%3A00' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 680
{
"_embedded" : {
"auditRecordResourceList" : [ {
"auditRecordId" : 5,
"createdBy" : null,
"correlationId" : "timelog",
"auditData" : "time --format='YYYY MM DD' | log",
"createdOn" : "2021-10-12T09:26:31.634Z",
"auditAction" : "CREATE",
"auditOperation" : "STREAM",
"platformName" : null,
"_links" : {
"self" : {
"href" : "http://localhost:9393/audit-records/5"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/audit-records?page=0&size=10"
}
},
"page" : {
"size" : 10,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
44.4.2. 检索审计记录详细信息
的 audit record 端点允许您获取单个审计记录。以下主题提供了更多详细信息:
请求结构
GET /audit-records/5 HTTP/1.1
Host: localhost:9393
路径参数
/audit-records/{id}
参数 | 描述 |
---|---|
|
要查询的审计记录的 ID (必需) |
示例请求
$ curl 'http://localhost:9393/audit-records/5' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 354
{
"auditRecordId" : 5,
"createdBy" : null,
"correlationId" : "timelog",
"auditData" : "time --format='YYYY MM DD' | log",
"createdOn" : "2021-10-12T09:26:31.634Z",
"auditAction" : "CREATE",
"auditOperation" : "STREAM",
"platformName" : null,
"_links" : {
"self" : {
"href" : "http://localhost:9393/audit-records/5"
}
}
}
44.4.3. 列出所有审计操作类型
Audit record 终端节点允许您获取操作类型。以下主题提供了更多详细信息:
请求结构
GET /audit-records/audit-action-types HTTP/1.1
Host: localhost:9393
示例请求
$ curl 'http://localhost:9393/audit-records/audit-action-types' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1111
[ {
"id" : 100,
"name" : "Create",
"description" : "Create an Entity",
"key" : "CREATE",
"nameWithDescription" : "Create (Create an Entity)"
}, {
"id" : 200,
"name" : "Delete",
"description" : "Delete an Entity",
"key" : "DELETE",
"nameWithDescription" : "Delete (Delete an Entity)"
}, {
"id" : 300,
"name" : "Deploy",
"description" : "Deploy an Entity",
"key" : "DEPLOY",
"nameWithDescription" : "Deploy (Deploy an Entity)"
}, {
"id" : 400,
"name" : "Rollback",
"description" : "Rollback an Entity",
"key" : "ROLLBACK",
"nameWithDescription" : "Rollback (Rollback an Entity)"
}, {
"id" : 500,
"name" : "Undeploy",
"description" : "Undeploy an Entity",
"key" : "UNDEPLOY",
"nameWithDescription" : "Undeploy (Undeploy an Entity)"
}, {
"id" : 600,
"name" : "Update",
"description" : "Update an Entity",
"key" : "UPDATE",
"nameWithDescription" : "Update (Update an Entity)"
}, {
"id" : 700,
"name" : "SuccessfulLogin",
"description" : "Successful login",
"key" : "LOGIN_SUCCESS",
"nameWithDescription" : "SuccessfulLogin (Successful login)"
} ]
44.4.4. 列出所有审计操作类型
Audit record 终端节点允许您获取操作类型。以下主题提供了更多详细信息:
请求结构
GET /audit-records/audit-operation-types HTTP/1.1
Host: localhost:9393
示例请求
$ curl 'http://localhost:9393/audit-records/audit-operation-types' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 315
[ {
"id" : 100,
"name" : "App Registration",
"key" : "APP_REGISTRATION"
}, {
"id" : 200,
"name" : "Schedule",
"key" : "SCHEDULE"
}, {
"id" : 300,
"name" : "Stream",
"key" : "STREAM"
}, {
"id" : 400,
"name" : "Task",
"key" : "TASK"
}, {
"id" : 500,
"name" : "Login",
"key" : "LOGIN"
} ]
44.5. 流定义
已注册的应用程序终端节点提供有关向 Spring Cloud Data Flow 服务器注册的流定义的信息。 以下主题提供了更多详细信息:
44.5.1. 创建新的 Stream 定义
创建流定义是通过创建对流定义终端节点的 POST 请求来实现的。
流的 curl 请求可能类似于以下内容:ticktock
curl -X POST -d "name=ticktock&definition=time | log" localhost:9393/streams/definitions?deploy=false
流定义还可以包含其他参数。 例如,在 “Request Structure” 下显示的示例中,我们还提供了日期时间格式。
以下主题提供了更多详细信息:
请求结构
POST /streams/definitions HTTP/1.1
Host: localhost:9393
Content-Type: application/x-www-form-urlencoded
name=timelog&definition=time+--format%3D%27YYYY+MM+DD%27+%7C+log&description=Demo+stream+for+testing&deploy=false
请求参数
参数 | 描述 |
---|---|
|
已创建任务定义的名称 |
|
流的定义,使用 Data Flow DSL |
|
流定义的描述 |
|
如果为 true,则在创建时部署流(默认值为 false) |
示例请求
$ curl 'http://localhost:9393/streams/definitions' -i -X POST \
-d 'name=timelog&definition=time+--format%3D%27YYYY+MM+DD%27+%7C+log&description=Demo+stream+for+testing&deploy=false'
响应结构
HTTP/1.1 201 Created
Content-Type: application/hal+json
Content-Length: 410
{
"name" : "timelog",
"dslText" : "time --format='YYYY MM DD' | log",
"originalDslText" : "time --format='YYYY MM DD' | log",
"status" : "undeployed",
"description" : "Demo stream for testing",
"statusDescription" : "The app or group is known to the system, but is not currently deployed",
"_links" : {
"self" : {
"href" : "http://localhost:9393/streams/definitions/timelog"
}
}
}
44.5.2. 列出所有 Stream 定义
的 streams 端点允许您列出所有流定义。 以下主题提供了更多详细信息:
请求结构
GET /streams/definitions?page=0&sort=name%2CASC&search=&size=10 HTTP/1.1
Host: localhost:9393
请求参数
参数 | 描述 |
---|---|
|
从零开始的页码(可选) |
|
对名称执行的搜索字符串(可选) |
|
列表中的排序 (可选) |
|
请求的页面大小(可选) |
示例请求
$ curl 'http://localhost:9393/streams/definitions?page=0&sort=name%2CASC&search=&size=10' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 1160
{
"_embedded" : {
"streamDefinitionResourceList" : [ {
"name" : "mysamplestream",
"dslText" : "time | log",
"originalDslText" : "time | log",
"status" : "undeployed",
"description" : "",
"statusDescription" : "The app or group is known to the system, but is not currently deployed",
"_links" : {
"self" : {
"href" : "http://localhost:9393/streams/definitions/mysamplestream"
}
}
}, {
"name" : "timelog",
"dslText" : "time --format='YYYY MM DD' | log",
"originalDslText" : "time --format='YYYY MM DD' | log",
"status" : "undeployed",
"description" : "Demo stream for testing",
"statusDescription" : "The app or group is known to the system, but is not currently deployed",
"_links" : {
"self" : {
"href" : "http://localhost:9393/streams/definitions/timelog"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/streams/definitions?page=0&size=10&sort=name,asc"
}
},
"page" : {
"size" : 10,
"totalElements" : 2,
"totalPages" : 1,
"number" : 0
}
}
44.5.3. 列出相关的 Stream 定义
的 streams 端点允许您列出相关的流定义。 以下主题提供了更多详细信息:
请求结构
GET /streams/definitions/timelog/related?page=0&sort=name%2CASC&search=&size=10&nested=true HTTP/1.1
Host: localhost:9393
请求参数
参数 | 描述 |
---|---|
|
我们是否应该递归地查找相关流定义 (可选) |
|
从零开始的页码(可选) |
|
对名称执行的搜索字符串(可选) |
|
列表中的排序 (可选) |
|
请求的页面大小(可选) |
示例请求
$ curl 'http://localhost:9393/streams/definitions/timelog/related?page=0&sort=name%2CASC&search=&size=10&nested=true' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 769
{
"_embedded" : {
"streamDefinitionResourceList" : [ {
"name" : "timelog",
"dslText" : "time --format='YYYY MM DD' | log",
"originalDslText" : "time --format='YYYY MM DD' | log",
"status" : "undeployed",
"description" : "Demo stream for testing",
"statusDescription" : "The app or group is known to the system, but is not currently deployed",
"_links" : {
"self" : {
"href" : "http://localhost:9393/streams/definitions/timelog"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/streams/definitions/timelog/related?page=0&size=10&sort=name,asc"
}
},
"page" : {
"size" : 10,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
44.5.4. 检索流定义详细信息
流定义终端节点允许您获取单个流定义。 以下主题提供了更多详细信息:
请求结构
GET /streams/definitions/timelog HTTP/1.1
Host: localhost:9393
路径参数
/streams/definitions/{name}
参数 | 描述 |
---|---|
|
要查询的流定义的名称 (必填) |
示例请求
$ curl 'http://localhost:9393/streams/definitions/timelog' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 410
{
"name" : "timelog",
"dslText" : "time --format='YYYY MM DD' | log",
"originalDslText" : "time --format='YYYY MM DD' | log",
"status" : "undeployed",
"description" : "Demo stream for testing",
"statusDescription" : "The app or group is known to the system, but is not currently deployed",
"_links" : {
"self" : {
"href" : "http://localhost:9393/streams/definitions/timelog"
}
}
}
44.5.5. 删除单个流定义
的 streams 端点允许您删除单个流定义。 (另请参阅:删除所有流定义。 以下主题提供了更多详细信息:
请求结构
DELETE /streams/definitions/timelog HTTP/1.1
Host: localhost:9393
请求参数
此终端节点没有请求参数。
示例请求
$ curl 'http://localhost:9393/streams/definitions/timelog' -i -X DELETE
响应结构
HTTP/1.1 200 OK
44.6. 流验证
流验证终端节点允许您验证流定义中的应用程序。 以下主题提供了更多详细信息:
44.6.1. 请求结构
GET /streams/validation/timelog HTTP/1.1
Host: localhost:9393
44.6.2. 路径参数
/streams/validation/{name}
参数 | 描述 |
---|---|
|
要验证的流定义的名称 (必填) |
44.6.3. 示例请求
$ curl 'http://localhost:9393/streams/validation/timelog' -i -X GET
44.6.4. 响应结构
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 197
{
"appName" : "timelog",
"dsl" : "time --format='YYYY MM DD' | log",
"description" : "Demo stream for testing",
"appStatuses" : {
"source:time" : "valid",
"sink:log" : "valid"
}
}
44.7. 流式部署
部署定义终端节点提供有关向 Spring Cloud Data Flow 服务器注册的部署的信息。 以下主题提供了更多详细信息:
44.7.1. 部署 Stream 定义
流定义终端节点允许您部署单个流定义。 (可选)您可以将应用程序参数作为请求正文中的属性传递。 以下主题提供了更多详细信息:
请求结构
POST /streams/deployments/timelog HTTP/1.1
Content-Type: application/json
Content-Length: 36
Host: localhost:9393
{"app.time.timestamp.format":"YYYY"}
/streams/deployments/{时间日志}
参数 | 描述 |
---|---|
|
现有流定义的名称 (必需) |
请求参数
此终端节点没有请求参数。
示例请求
$ curl 'http://localhost:9393/streams/deployments/timelog' -i -X POST \
-H 'Content-Type: application/json' \
-d '{"app.time.timestamp.format":"YYYY"}'
响应结构
HTTP/1.1 201 Created
44.7.2. 取消部署流定义
流定义终端节点允许您取消部署单个流定义。 以下主题提供了更多详细信息:
请求结构
DELETE /streams/deployments/timelog HTTP/1.1
Host: localhost:9393
/streams/deployments/{时间日志}
参数 | 描述 |
---|---|
|
现有流定义的名称 (必需) |
请求参数
此终端节点没有请求参数。
示例请求
$ curl 'http://localhost:9393/streams/deployments/timelog' -i -X DELETE
响应结构
HTTP/1.1 200 OK
44.7.3. 取消部署所有 Stream Definitions
流定义终端节点允许您取消部署所有单个流定义。 以下主题提供了更多详细信息:
请求结构
DELETE /streams/deployments HTTP/1.1
Host: localhost:9393
请求参数
此终端节点没有请求参数。
示例请求
$ curl 'http://localhost:9393/streams/deployments' -i -X DELETE
响应结构
HTTP/1.1 200 OK
44.7.4. 更新已部署的流
借助 Skipper,您可以更新已部署的流,并提供其他部署属性。
请求结构
POST /streams/deployments/update/timelog1 HTTP/1.1
Content-Type: application/json
Content-Length: 196
Host: localhost:9393
{"releaseName":"timelog1","packageIdentifier":{"repositoryName":"test","packageName":"timelog1","packageVersion":"1.0.0"},"updateProperties":{"app.time.timestamp.format":"YYYYMMDD"},"force":false}
/streams/deployments/update/{timelog1}
参数 | 描述 |
---|---|
|
现有流定义的名称 (必需) |
请求参数
此终端节点没有请求参数。
示例请求
$ curl 'http://localhost:9393/streams/deployments/update/timelog1' -i -X POST \
-H 'Content-Type: application/json' \
-d '{"releaseName":"timelog1","packageIdentifier":{"repositoryName":"test","packageName":"timelog1","packageVersion":"1.0.0"},"updateProperties":{"app.time.timestamp.format":"YYYYMMDD"},"force":false}'
响应结构
HTTP/1.1 201 Created
44.7.5. 回滚流定义
将流回滚到流的先前版本或特定版本。
请求结构
POST /streams/deployments/rollback/timelog1/1 HTTP/1.1
Content-Type: application/json
Host: localhost:9393
/streams/deployments/rollback/{name}/{版本}
参数 | 描述 |
---|---|
|
现有流定义的名称 (必需) |
|
要回滚到的版本 |
请求参数
此终端节点没有请求参数。
示例请求
$ curl 'http://localhost:9393/streams/deployments/rollback/timelog1/1' -i -X POST \
-H 'Content-Type: application/json'
响应结构
HTTP/1.1 201 Created
44.7.6. 获取清单
返回已发布版本的清单。对于具有依赖项的软件包,清单包含这些依赖项的内容。
请求结构
GET /streams/deployments/manifest/timelog1/1 HTTP/1.1
Content-Type: application/json
Host: localhost:9393
/streams/deployments/manifest/{name}/{version}
参数 | 描述 |
---|---|
|
现有流定义的名称 (必需) |
|
流的版本 |
请求参数
此终端节点没有请求参数。
示例请求
$ curl 'http://localhost:9393/streams/deployments/manifest/timelog1/1' -i -X GET \
-H 'Content-Type: application/json'
响应结构
HTTP/1.1 200 OK
44.7.7. 获取部署历史记录
获取流的部署历史记录。
请求结构
GET /streams/deployments/history/timelog1 HTTP/1.1
Content-Type: application/json
Host: localhost:9393
示例请求
$ curl 'http://localhost:9393/streams/deployments/history/timelog1' -i -X GET \
-H 'Content-Type: application/json'
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 162
[ {
"name" : null,
"version" : 0,
"info" : null,
"pkg" : null,
"configValues" : {
"raw" : null
},
"manifest" : null,
"platformName" : null
} ]
44.7.8. 获取部署平台
检索支持的部署平台列表。
请求结构
GET /streams/deployments/platform/list HTTP/1.1
Content-Type: application/json
Host: localhost:9393
示例请求
$ curl 'http://localhost:9393/streams/deployments/platform/list' -i -X GET \
-H 'Content-Type: application/json'
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 106
[ {
"id" : null,
"name" : "default",
"type" : "local",
"description" : null,
"options" : [ ]
} ]
44.7.9. 缩放流定义
流定义终端节点允许您在流定义中扩展单个应用程序。 (可选)您可以将应用程序参数作为请求正文中的属性传递。 以下主题提供了更多详细信息:
请求结构
POST /streams/deployments/scale/timelog/log/instances/1 HTTP/1.1
Content-Type: application/json
Content-Length: 36
Host: localhost:9393
{"app.time.timestamp.format":"YYYY"}
/streams/deployments/scale/{streamName}/{appName}/instances/{count}
参数 | 描述 |
---|---|
|
现有流定义的名称 (必需) |
|
在 Stream 应用程序名称中进行扩展 |
|
所选 Stream 应用程序的实例数(必需) |
请求参数
此终端节点没有请求参数。
示例请求
$ curl 'http://localhost:9393/streams/deployments/scale/timelog/log/instances/1' -i -X POST \
-H 'Content-Type: application/json' \
-d '{"app.time.timestamp.format":"YYYY"}'
响应结构
HTTP/1.1 201 Created
44.8. 任务定义
任务定义终端节点提供有关向 Spring Cloud Data Flow 服务器注册的任务定义的信息。 以下主题提供了更多详细信息:
44.8.1. 创建新的任务定义
任务定义端点允许您创建新的任务定义。 以下主题提供了更多详细信息:
请求结构
POST /tasks/definitions HTTP/1.1
Host: localhost:9393
Content-Type: application/x-www-form-urlencoded
name=my-task&definition=timestamp+--format%3D%27YYYY+MM+DD%27&description=Demo+task+definition+for+testing
请求参数
参数 | 描述 |
---|---|
|
已创建任务定义的名称 |
|
使用 Data Flow DSL 的任务定义 |
|
任务定义的描述 |
示例请求
$ curl 'http://localhost:9393/tasks/definitions' -i -X POST \
-d 'name=my-task&definition=timestamp+--format%3D%27YYYY+MM+DD%27&description=Demo+task+definition+for+testing'
响应结构
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 342
{
"name" : "my-task",
"dslText" : "timestamp --format='YYYY MM DD'",
"description" : "Demo task definition for testing",
"composed" : false,
"composedTaskElement" : false,
"lastTaskExecution" : null,
"status" : "UNKNOWN",
"_links" : {
"self" : {
"href" : "http://localhost:9393/tasks/definitions/my-task"
}
}
}
44.8.2. 列出所有任务定义
任务定义端点允许您获取所有任务定义。 以下主题提供了更多详细信息:
请求结构
GET /tasks/definitions?page=0&size=10&sort=taskName%2CASC&search=&manifest=true HTTP/1.1
Host: localhost:9393
请求参数
参数 | 描述 |
---|---|
|
从零开始的页码(可选) |
|
请求的页面大小(可选) |
|
对名称执行的搜索字符串(可选) |
|
列表中的排序 (可选) |
|
用于将任务清单包含在最新任务执行中的标志(可选) |
示例请求
$ curl 'http://localhost:9393/tasks/definitions?page=0&size=10&sort=taskName%2CASC&search=&manifest=true' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 689
{
"_embedded" : {
"taskDefinitionResourceList" : [ {
"name" : "my-task",
"dslText" : "timestamp --format='YYYY MM DD'",
"description" : "Demo task definition for testing",
"composed" : false,
"composedTaskElement" : false,
"lastTaskExecution" : null,
"status" : "UNKNOWN",
"_links" : {
"self" : {
"href" : "http://localhost:9393/tasks/definitions/my-task"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/tasks/definitions?page=0&size=10&sort=taskName,asc"
}
},
"page" : {
"size" : 10,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
44.8.3. 检索任务定义详细信息
任务定义终端节点允许您获取单个任务定义。 以下主题提供了更多详细信息:
请求结构
GET /tasks/definitions/my-task?manifest=true HTTP/1.1
Host: localhost:9393
/tasks/definitions/{我的任务}
参数 | 描述 |
---|---|
|
现有任务定义的名称 (必需) |
请求参数
此终端节点没有请求参数。
示例请求
$ curl 'http://localhost:9393/tasks/definitions/my-task?manifest=true' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 342
{
"name" : "my-task",
"dslText" : "timestamp --format='YYYY MM DD'",
"description" : "Demo task definition for testing",
"composed" : false,
"composedTaskElement" : false,
"lastTaskExecution" : null,
"status" : "UNKNOWN",
"_links" : {
"self" : {
"href" : "http://localhost:9393/tasks/definitions/my-task"
}
}
}
44.8.4. 删除任务定义
任务定义端点允许您删除单个任务定义。 以下主题提供了更多详细信息:
请求结构
DELETE /tasks/definitions/my-task?cleanup=true HTTP/1.1
Host: localhost:9393
/tasks/definitions/{我的任务}
参数 | 描述 |
---|---|
|
现有任务定义的名称 (必需) |
请求参数
此终端节点没有请求参数。
示例请求
$ curl 'http://localhost:9393/tasks/definitions/my-task?cleanup=true' -i -X DELETE
响应结构
HTTP/1.1 200 OK
44.9. 任务调度器
任务计划程序端点提供有关向计划程序实施注册的任务计划的信息。 以下主题提供了更多详细信息:
44.9.1. 创建新的任务计划
任务计划端点允许您创建新的任务计划。 以下主题提供了更多详细信息:
请求结构
POST /tasks/schedules HTTP/1.1
Host: localhost:9393
Content-Type: application/x-www-form-urlencoded
scheduleName=myschedule&taskDefinitionName=mytaskname&properties=scheduler.cron.expression%3D00+22+17+%3F+*&arguments=--foo%3Dbar
请求参数
参数 | 描述 |
---|---|
|
已创建计划的名称 |
|
要计划的任务定义的名称 |
|
计划和启动任务所需的属性 |
|
用于启动任务的命令行参数 |
示例请求
$ curl 'http://localhost:9393/tasks/schedules' -i -X POST \
-d 'scheduleName=myschedule&taskDefinitionName=mytaskname&properties=scheduler.cron.expression%3D00+22+17+%3F+*&arguments=--foo%3Dbar'
响应结构
HTTP/1.1 201 Created
44.9.2. 列出所有调度
任务计划端点允许您获取所有任务计划。 以下主题提供了更多详细信息:
请求结构
GET /tasks/schedules?page=0&size=10 HTTP/1.1
Host: localhost:9393
请求参数
参数 | 描述 |
---|---|
|
从零开始的页码(可选) |
|
请求的页面大小(可选) |
示例请求
$ curl 'http://localhost:9393/tasks/schedules?page=0&size=10' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 587
{
"_embedded" : {
"scheduleInfoResourceList" : [ {
"scheduleName" : "FOO",
"taskDefinitionName" : "BAR",
"scheduleProperties" : {
"scheduler.AAA.spring.cloud.scheduler.cron.expression" : "00 41 17 ? * *"
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/tasks/schedules/FOO"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/tasks/schedules?page=0&size=10"
}
},
"page" : {
"size" : 10,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
44.9.3. 列出过滤的 schedules
任务计划端点允许您获取具有指定任务定义名称的所有任务计划。 以下主题提供了更多详细信息:
请求结构
GET /tasks/schedules/instances/FOO?page=0&size=10 HTTP/1.1
Host: localhost:9393
/tasks/schedules/instances/{task-definition-name}
参数 | 描述 |
---|---|
|
根据指定的任务定义筛选计划(必需) |
请求参数
参数 | 描述 |
---|---|
|
从零开始的页码(可选) |
|
请求的页面大小(可选) |
示例请求
$ curl 'http://localhost:9393/tasks/schedules/instances/FOO?page=0&size=10' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 599
{
"_embedded" : {
"scheduleInfoResourceList" : [ {
"scheduleName" : "FOO",
"taskDefinitionName" : "BAR",
"scheduleProperties" : {
"scheduler.AAA.spring.cloud.scheduler.cron.expression" : "00 41 17 ? * *"
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/tasks/schedules/FOO"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/tasks/schedules/instances/FOO?page=0&size=1"
}
},
"page" : {
"size" : 1,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
44.9.4. 删除任务计划
任务计划端点允许您删除单个任务计划。 以下主题提供了更多详细信息:
请求结构
DELETE /tasks/schedules/mytestschedule HTTP/1.1
Host: localhost:9393
/tasks/schedules/{scheduleName}
参数 | 描述 |
---|---|
|
现有计划的名称 (必需) |
请求参数
此终端节点没有请求参数。
示例请求
$ curl 'http://localhost:9393/tasks/schedules/mytestschedule' -i -X DELETE
响应结构
HTTP/1.1 200 OK
44.10. 任务验证
任务验证端点允许您验证任务定义中的应用程序。 以下主题提供了更多详细信息:
44.10.1. 请求结构
GET /tasks/validation/taskC HTTP/1.1
Host: localhost:9393
44.10.2. 路径参数
/tasks/validation/{name}
参数 | 描述 |
---|---|
|
要验证的任务定义的名称 (必填) |
44.10.3. 示例请求
$ curl 'http://localhost:9393/tasks/validation/taskC' -i -X GET
44.10.4. 响应结构
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 144
{
"appName" : "taskC",
"dsl" : "timestamp --format='yyyy MM dd'",
"description" : "",
"appStatuses" : {
"task:taskC" : "valid"
}
}
44.11. 任务执行
任务执行终端节点提供有关向 Spring Cloud Data Flow 服务器注册的任务执行的信息。 以下主题提供了更多详细信息:
44.11.1. 启动任务
通过请求创建新任务执行来完成启动任务。 以下主题提供了更多详细信息:
请求结构
POST /tasks/executions HTTP/1.1
Host: localhost:9393
Content-Type: application/x-www-form-urlencoded
name=taskA&properties=app.my-task.foo%3Dbar%2Cdeployer.my-task.something-else%3D3&arguments=--server.port%3D8080+--foo%3Dbar
请求参数
参数 | 描述 |
---|---|
|
要启动的任务定义的名称 |
|
启动时使用的 Application 和 Deployer 属性 |
|
要传递给任务的命令行参数 |
示例请求
$ curl 'http://localhost:9393/tasks/executions' -i -X POST \
-d 'name=taskA&properties=app.my-task.foo%3Dbar%2Cdeployer.my-task.something-else%3D3&arguments=--server.port%3D8080+--foo%3Dbar'
响应结构
HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 1
1
44.11.2. 停止任务
通过发布现有任务执行的 ID 来完成停止任务。 以下主题提供了更多详细信息:
请求结构
POST /tasks/executions/1 HTTP/1.1
Host: localhost:9393
Content-Type: application/x-www-form-urlencoded
platform=default
路径参数
/tasks/executions/{id}
参数 | 描述 |
---|---|
|
现有任务执行的 ID(必需) |
请求参数
参数 | 描述 |
---|---|
|
与任务执行关联的平台(可选) |
示例请求
$ curl 'http://localhost:9393/tasks/executions/1' -i -X POST \
-d 'platform=default'
响应结构
HTTP/1.1 200 OK
44.11.3. 列出所有任务执行
任务执行终端节点允许您列出所有任务执行。 以下主题提供了更多详细信息:
请求结构
GET /tasks/executions?page=0&size=10 HTTP/1.1
Host: localhost:9393
请求参数
参数 | 描述 |
---|---|
|
从零开始的页码(可选) |
|
请求的页面大小(可选) |
示例请求
$ curl 'http://localhost:9393/tasks/executions?page=0&size=10' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 2711
{
"_embedded" : {
"taskExecutionResourceList" : [ {
"executionId" : 2,
"exitCode" : null,
"taskName" : "taskB",
"startTime" : null,
"endTime" : null,
"exitMessage" : null,
"arguments" : [ ],
"jobExecutionIds" : [ ],
"errorMessage" : null,
"externalExecutionId" : "taskB-45c8bd1d-7230-4488-9e27-7e94110a193e",
"parentExecutionId" : null,
"resourceUrl" : "org.springframework.cloud.task.app:timestamp-task:jar:1.2.0.RELEASE",
"appProperties" : {
"management.metrics.tags.service" : "task-application",
"timestamp.format" : "yyyy MM dd",
"spring.datasource.username" : null,
"spring.datasource.url" : null,
"spring.datasource.driverClassName" : null,
"management.metrics.tags.application" : "${spring.cloud.task.name:unknown}-${spring.cloud.task.executionid:unknown}",
"spring.cloud.task.name" : "taskB"
},
"deploymentProperties" : {
"app.my-task.foo" : "bar",
"deployer.my-task.something-else" : "3"
},
"platformName" : "default",
"taskExecutionStatus" : "UNKNOWN",
"_links" : {
"self" : {
"href" : "http://localhost:9393/tasks/executions/2"
}
}
}, {
"executionId" : 1,
"exitCode" : null,
"taskName" : "taskA",
"startTime" : null,
"endTime" : null,
"exitMessage" : null,
"arguments" : [ ],
"jobExecutionIds" : [ ],
"errorMessage" : null,
"externalExecutionId" : "taskA-ea1a4c72-1cd6-45df-aa23-570fcc4babf4",
"parentExecutionId" : null,
"resourceUrl" : "org.springframework.cloud.task.app:timestamp-task:jar:1.2.0.RELEASE",
"appProperties" : {
"management.metrics.tags.service" : "task-application",
"timestamp.format" : "yyyy MM dd",
"spring.datasource.username" : null,
"spring.datasource.url" : null,
"spring.datasource.driverClassName" : null,
"management.metrics.tags.application" : "${spring.cloud.task.name:unknown}-${spring.cloud.task.executionid:unknown}",
"spring.cloud.task.name" : "taskA"
},
"deploymentProperties" : {
"app.my-task.foo" : "bar",
"deployer.my-task.something-else" : "3"
},
"platformName" : "default",
"taskExecutionStatus" : "UNKNOWN",
"_links" : {
"self" : {
"href" : "http://localhost:9393/tasks/executions/1"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/tasks/executions?page=0&size=10"
}
},
"page" : {
"size" : 10,
"totalElements" : 2,
"totalPages" : 1,
"number" : 0
}
}
44.11.4. 列出具有指定任务名称的所有任务执行
任务执行终端节点允许您列出具有指定任务名称的任务执行。 以下主题提供了更多详细信息:
请求结构
GET /tasks/executions?name=taskB&page=0&size=10 HTTP/1.1
Host: localhost:9393
请求参数
参数 | 描述 |
---|---|
|
从零开始的页码(可选) |
|
请求的页面大小(可选) |
|
与任务执行关联的名称 |
示例请求
$ curl 'http://localhost:9393/tasks/executions?name=taskB&page=0&size=10' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 1492
{
"_embedded" : {
"taskExecutionResourceList" : [ {
"executionId" : 2,
"exitCode" : null,
"taskName" : "taskB",
"startTime" : null,
"endTime" : null,
"exitMessage" : null,
"arguments" : [ ],
"jobExecutionIds" : [ ],
"errorMessage" : null,
"externalExecutionId" : "taskB-45c8bd1d-7230-4488-9e27-7e94110a193e",
"parentExecutionId" : null,
"resourceUrl" : "org.springframework.cloud.task.app:timestamp-task:jar:1.2.0.RELEASE",
"appProperties" : {
"management.metrics.tags.service" : "task-application",
"timestamp.format" : "yyyy MM dd",
"spring.datasource.username" : null,
"spring.datasource.url" : null,
"spring.datasource.driverClassName" : null,
"management.metrics.tags.application" : "${spring.cloud.task.name:unknown}-${spring.cloud.task.executionid:unknown}",
"spring.cloud.task.name" : "taskB"
},
"deploymentProperties" : {
"app.my-task.foo" : "bar",
"deployer.my-task.something-else" : "3"
},
"platformName" : "default",
"taskExecutionStatus" : "UNKNOWN",
"_links" : {
"self" : {
"href" : "http://localhost:9393/tasks/executions/2"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/tasks/executions?page=0&size=10"
}
},
"page" : {
"size" : 10,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
44.11.5. 任务执行细节
任务执行终端节点允许您获取有关任务执行的详细信息。 以下主题提供了更多详细信息:
请求结构
GET /tasks/executions/1 HTTP/1.1
Host: localhost:9393
/tasks/executions/{id}
参数 | 描述 |
---|---|
|
现有任务执行的 ID(必需) |
请求参数
此终端节点没有请求参数。
示例请求
$ curl 'http://localhost:9393/tasks/executions/1' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 1085
{
"executionId" : 1,
"exitCode" : null,
"taskName" : "taskA",
"startTime" : null,
"endTime" : null,
"exitMessage" : null,
"arguments" : [ ],
"jobExecutionIds" : [ ],
"errorMessage" : null,
"externalExecutionId" : "taskA-ea1a4c72-1cd6-45df-aa23-570fcc4babf4",
"parentExecutionId" : null,
"resourceUrl" : "org.springframework.cloud.task.app:timestamp-task:jar:1.2.0.RELEASE",
"appProperties" : {
"management.metrics.tags.service" : "task-application",
"timestamp.format" : "yyyy MM dd",
"spring.datasource.username" : null,
"spring.datasource.url" : null,
"spring.datasource.driverClassName" : null,
"management.metrics.tags.application" : "${spring.cloud.task.name:unknown}-${spring.cloud.task.executionid:unknown}",
"spring.cloud.task.name" : "taskA"
},
"deploymentProperties" : {
"app.my-task.foo" : "bar",
"deployer.my-task.something-else" : "3"
},
"platformName" : "default",
"taskExecutionStatus" : "UNKNOWN",
"_links" : {
"self" : {
"href" : "http://localhost:9393/tasks/executions/1"
}
}
}
44.11.6. 删除任务执行
任务执行终端节点允许您:
-
清理用于部署任务的资源
-
从持久性存储中删除相关的任务数据以及可能关联的 Spring Batch 作业数据
清理实现(第一个选项)特定于平台。两种操作都可以触发 一次或分开。 |
以下主题提供了更多详细信息:
请参阅以下关于删除任务执行数据的信息。
请求结构
DELETE /tasks/executions/1,2?action=CLEANUP,REMOVE_DATA HTTP/1.1
Host: localhost:9393
/tasks/executions/{ids}
参数 | 描述 |
---|---|
|
提供 2 个逗号分隔的任务执行 ID 值。 |
您必须提供实际存在的任务执行 ID。否则,将返回 (Not Found) HTTP 状态。
在提交多个任务执行 ID 的情况下,单个任务执行 ID 的无效会导致整个请求失败。
不执行任何操作。 |
请求参数
此终端节点支持一个名为 action 的可选请求参数。它是一个枚举并支持以下内容 值:
-
清理
-
REMOVE_DATA
参数 | 描述 |
---|---|
|
同时使用 CLEANUP 和 REMOVE_DATA 这两个操作。 |
示例请求
$ curl 'http://localhost:9393/tasks/executions/1,2?action=CLEANUP,REMOVE_DATA' -i -X DELETE
响应结构
HTTP/1.1 200 OK
44.11.7. 删除任务执行数据
您不仅可以清理用于部署任务的资源,还可以删除与 来自底层持久性存储的任务执行。此外,如果任务执行与一个 或 更多 Batch Job 执行,这些也会被删除。
以下示例说明了如何使用多个任务执行 ID 和多个操作发出请求:
$ curl 'http://localhost:9393/tasks/executions/1,2?action=CLEANUP,REMOVE_DATA' -i -X DELETE
/tasks/executions/{ids}
参数 | 描述 |
---|---|
|
提供 2 个逗号分隔的任务执行 ID 值。 |
参数 | 描述 |
---|---|
|
同时使用 CLEANUP 和 REMOVE_DATA 这两个操作。 |
使用 action 参数从持久性存储中删除数据时,您必须提供
表示父任务执行的任务执行 ID。当您提供子任务执行(作为组合任务的一部分执行)时,
返回 (Bad Request) HTTP 状态。REMOVE_DATA 400 |
44.11.8. 任务执行当前计数
任务执行当前终端节点允许您检索当前正在运行的执行数。 以下主题提供了更多详细信息:
请求结构
api-guide.adoc 中未解析的指令 - include::/home/runner/work/spring-cloud-dataflow/spring-cloud-dataflow/../spring-cloud-dataflow-classic-docs/target/generated-snippets/task-executions-documentation/launch-task-current-count/http-request.adoc[]
请求参数
此终端节点没有请求参数。
示例请求
api-guide.adoc 中未解析的指令 - include::/home/runner/work/spring-cloud-dataflow/spring-cloud-dataflow/../ spring-cloud-dataflow-classic-docs / target/generated-snippets / task-executions-documentation/ launch-task-current-count / curl-request.adoc []
响应结构
api-guide.adoc 中未解析的指令 - include::/home/runner/work/spring-cloud-dataflow/spring-cloud-dataflow/../spring-cloud-dataflow-classic-docs/target/generated-snippets/task-executions-documentation/launch-task-current-count/http-response.adoc[]
44.12. 任务执行
任务执行终端节点提供有关向 Spring Cloud Data Flow 服务器注册的任务执行的信息。 以下主题提供了更多详细信息:
44.12.1. 列出所有任务执行
任务执行终端节点允许您列出所有任务执行。 以下主题提供了更多详细信息:
请求结构
GET /jobs/executions?page=0&size=10 HTTP/1.1
Host: localhost:9393
请求参数
参数 | 描述 |
---|---|
|
从零开始的页码(可选) |
|
请求的页面大小(可选) |
示例请求
$ curl 'http://localhost:9393/jobs/executions?page=0&size=10' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 3379
{
"_embedded" : {
"jobExecutionResourceList" : [ {
"executionId" : 2,
"stepExecutionCount" : 0,
"jobId" : 2,
"taskExecutionId" : 2,
"name" : "DOCJOB1",
"startDate" : "2021-10-12",
"startTime" : "09:26:44",
"duration" : "00:00:00",
"jobExecution" : {
"id" : 2,
"version" : 1,
"jobParameters" : {
"parameters" : { },
"empty" : true
},
"jobInstance" : {
"id" : 2,
"version" : null,
"jobName" : "DOCJOB1",
"instanceId" : 2
},
"stepExecutions" : [ ],
"status" : "STOPPED",
"startTime" : "2021-10-12T09:26:44.841+0000",
"createTime" : "2021-10-12T09:26:44.840+0000",
"endTime" : null,
"lastUpdated" : "2021-10-12T09:26:44.841+0000",
"exitStatus" : {
"exitCode" : "UNKNOWN",
"exitDescription" : "",
"running" : true
},
"executionContext" : {
"dirty" : false,
"empty" : true,
"values" : [ ]
},
"failureExceptions" : [ ],
"jobConfigurationName" : null,
"running" : true,
"jobId" : 2,
"stopping" : false,
"allFailureExceptions" : [ ]
},
"jobParameters" : { },
"jobParametersString" : "",
"restartable" : true,
"abandonable" : true,
"stoppable" : false,
"defined" : true,
"timeZone" : "UTC",
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/executions/2"
}
}
}, {
"executionId" : 1,
"stepExecutionCount" : 0,
"jobId" : 1,
"taskExecutionId" : 1,
"name" : "DOCJOB",
"startDate" : "2021-10-12",
"startTime" : "09:26:44",
"duration" : "00:00:00",
"jobExecution" : {
"id" : 1,
"version" : 2,
"jobParameters" : {
"parameters" : { },
"empty" : true
},
"jobInstance" : {
"id" : 1,
"version" : null,
"jobName" : "DOCJOB",
"instanceId" : 1
},
"stepExecutions" : [ ],
"status" : "STOPPING",
"startTime" : "2021-10-12T09:26:44.837+0000",
"createTime" : "2021-10-12T09:26:44.836+0000",
"endTime" : null,
"lastUpdated" : "2021-10-12T09:26:44.901+0000",
"exitStatus" : {
"exitCode" : "UNKNOWN",
"exitDescription" : "",
"running" : true
},
"executionContext" : {
"dirty" : false,
"empty" : true,
"values" : [ ]
},
"failureExceptions" : [ ],
"jobConfigurationName" : null,
"running" : true,
"jobId" : 1,
"stopping" : true,
"allFailureExceptions" : [ ]
},
"jobParameters" : { },
"jobParametersString" : "",
"restartable" : false,
"abandonable" : true,
"stoppable" : false,
"defined" : false,
"timeZone" : "UTC",
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/executions/1"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/executions?page=0&size=10"
}
},
"page" : {
"size" : 10,
"totalElements" : 2,
"totalPages" : 1,
"number" : 0
}
}
44.12.2. 列出不包含步骤执行的所有任务执行
任务执行终端节点允许您列出所有任务执行,不包括步骤执行。 以下主题提供了更多详细信息:
请求结构
GET /jobs/thinexecutions?page=0&size=10 HTTP/1.1
Host: localhost:9393
请求参数
参数 | 描述 |
---|---|
|
从零开始的页码(可选) |
|
请求的页面大小(可选) |
示例请求
$ curl 'http://localhost:9393/jobs/thinexecutions?page=0&size=10' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1604
{
"_embedded" : {
"jobExecutionThinResourceList" : [ {
"executionId" : 2,
"stepExecutionCount" : 0,
"jobId" : 2,
"taskExecutionId" : 2,
"instanceId" : 2,
"name" : "DOCJOB1",
"startDate" : "2021-10-12",
"startTime" : "09:26:44",
"startDateTime" : "2021-10-12T09:26:44.841+0000",
"duration" : "00:00:00",
"jobParameters" : { },
"jobParametersString" : "",
"restartable" : true,
"abandonable" : true,
"stoppable" : false,
"defined" : true,
"timeZone" : "UTC",
"status" : "STOPPED",
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/thinexecutions/2"
}
}
}, {
"executionId" : 1,
"stepExecutionCount" : 0,
"jobId" : 1,
"taskExecutionId" : 1,
"instanceId" : 1,
"name" : "DOCJOB",
"startDate" : "2021-10-12",
"startTime" : "09:26:44",
"startDateTime" : "2021-10-12T09:26:44.837+0000",
"duration" : "00:00:00",
"jobParameters" : { },
"jobParametersString" : "",
"restartable" : false,
"abandonable" : false,
"stoppable" : true,
"defined" : false,
"timeZone" : "UTC",
"status" : "STARTED",
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/thinexecutions/1"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/thinexecutions?page=0&size=10"
}
},
"page" : {
"size" : 10,
"totalElements" : 2,
"totalPages" : 1,
"number" : 0
}
}
44.12.3. 列出具有指定 Job name 的所有任务执行
任务执行终端节点允许您列出所有任务执行。 以下主题提供了更多详细信息:
请求结构
GET /jobs/executions?name=DOCJOB&page=0&size=10 HTTP/1.1
Host: localhost:9393
请求参数
参数 | 描述 |
---|---|
|
从零开始的页码(可选) |
|
请求的页面大小(可选) |
|
与任务执行关联的名称 |
示例请求
$ curl 'http://localhost:9393/jobs/executions?name=DOCJOB&page=0&size=10' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1825
{
"_embedded" : {
"jobExecutionResourceList" : [ {
"executionId" : 1,
"stepExecutionCount" : 0,
"jobId" : 1,
"taskExecutionId" : 1,
"name" : "DOCJOB",
"startDate" : "2021-10-12",
"startTime" : "09:26:44",
"duration" : "00:00:00",
"jobExecution" : {
"id" : 1,
"version" : 2,
"jobParameters" : {
"parameters" : { },
"empty" : true
},
"jobInstance" : {
"id" : 1,
"version" : null,
"jobName" : "DOCJOB",
"instanceId" : 1
},
"stepExecutions" : [ ],
"status" : "STOPPING",
"startTime" : "2021-10-12T09:26:44.837+0000",
"createTime" : "2021-10-12T09:26:44.836+0000",
"endTime" : null,
"lastUpdated" : "2021-10-12T09:26:44.901+0000",
"exitStatus" : {
"exitCode" : "UNKNOWN",
"exitDescription" : "",
"running" : true
},
"executionContext" : {
"dirty" : false,
"empty" : true,
"values" : [ ]
},
"failureExceptions" : [ ],
"jobConfigurationName" : null,
"running" : true,
"jobId" : 1,
"stopping" : true,
"allFailureExceptions" : [ ]
},
"jobParameters" : { },
"jobParametersString" : "",
"restartable" : false,
"abandonable" : true,
"stoppable" : false,
"defined" : false,
"timeZone" : "UTC",
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/executions/1"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/executions?page=0&size=10"
}
},
"page" : {
"size" : 10,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
44.12.4. 列出具有指定任务名称(不包含步骤执行)的所有任务执行
任务执行终端节点允许您列出所有任务执行。 以下主题提供了更多详细信息:
请求结构
GET /jobs/thinexecutions?name=DOCJOB&page=0&size=10 HTTP/1.1
Host: localhost:9393
请求参数
参数 | 描述 |
---|---|
|
从零开始的页码(可选) |
|
请求的页面大小(可选) |
|
与任务执行关联的名称 |
示例请求
$ curl 'http://localhost:9393/jobs/thinexecutions?name=DOCJOB&page=0&size=10' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 943
{
"_embedded" : {
"jobExecutionThinResourceList" : [ {
"executionId" : 1,
"stepExecutionCount" : 0,
"jobId" : 1,
"taskExecutionId" : 1,
"instanceId" : 1,
"name" : "DOCJOB",
"startDate" : "2021-10-12",
"startTime" : "09:26:44",
"startDateTime" : "2021-10-12T09:26:44.837+0000",
"duration" : "00:00:00",
"jobParameters" : { },
"jobParametersString" : "",
"restartable" : false,
"abandonable" : true,
"stoppable" : false,
"defined" : false,
"timeZone" : "UTC",
"status" : "STOPPING",
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/thinexecutions/1"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/thinexecutions?page=0&size=10"
}
},
"page" : {
"size" : 10,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
44.12.5. 列出指定日期范围内的所有任务执行,不包括步骤执行
任务执行终端节点允许您列出所有任务执行。 以下主题提供了更多详细信息:
请求结构
GET /jobs/thinexecutions?page=0&size=10&fromDate=2000-09-24T17%3A00%3A45%2C000&toDate=2050-09-24T18%3A00%3A45%2C000 HTTP/1.1
Host: localhost:9393
请求参数
参数 | 描述 |
---|---|
|
从零开始的页码(可选) |
|
请求的页面大小(可选) |
|
从开始日期筛选结果,格式为 'yyyy-MM-dd'T'HH:mm:ss,SSS' |
|
以 'yyyy-MM-dd'T'HH:mm:ss,SSS' 格式筛选截至最新的结果 |
示例请求
$ curl 'http://localhost:9393/jobs/thinexecutions?page=0&size=10&fromDate=2000-09-24T17%3A00%3A45%2C000&toDate=2050-09-24T18%3A00%3A45%2C000' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1605
{
"_embedded" : {
"jobExecutionThinResourceList" : [ {
"executionId" : 2,
"stepExecutionCount" : 0,
"jobId" : 2,
"taskExecutionId" : 2,
"instanceId" : 2,
"name" : "DOCJOB1",
"startDate" : "2021-10-12",
"startTime" : "09:26:44",
"startDateTime" : "2021-10-12T09:26:44.841+0000",
"duration" : "00:00:00",
"jobParameters" : { },
"jobParametersString" : "",
"restartable" : true,
"abandonable" : true,
"stoppable" : false,
"defined" : true,
"timeZone" : "UTC",
"status" : "STOPPED",
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/thinexecutions/2"
}
}
}, {
"executionId" : 1,
"stepExecutionCount" : 0,
"jobId" : 1,
"taskExecutionId" : 1,
"instanceId" : 1,
"name" : "DOCJOB",
"startDate" : "2021-10-12",
"startTime" : "09:26:44",
"startDateTime" : "2021-10-12T09:26:44.837+0000",
"duration" : "00:00:00",
"jobParameters" : { },
"jobParametersString" : "",
"restartable" : false,
"abandonable" : true,
"stoppable" : false,
"defined" : false,
"timeZone" : "UTC",
"status" : "STOPPING",
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/thinexecutions/1"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/thinexecutions?page=0&size=10"
}
},
"page" : {
"size" : 10,
"totalElements" : 2,
"totalPages" : 1,
"number" : 0
}
}
44.12.6. 列出指定任务实例 ID 的所有任务执行,不包括步骤执行
任务执行终端节点允许您列出所有任务执行。 以下主题提供了更多详细信息:
请求结构
GET /jobs/thinexecutions?page=0&size=10&jobInstanceId=1 HTTP/1.1
Host: localhost:9393
请求参数
参数 | 描述 |
---|---|
|
从零开始的页码(可选) |
|
请求的页面大小(可选) |
|
按作业实例 ID 筛选结果 |
示例请求
$ curl 'http://localhost:9393/jobs/thinexecutions?page=0&size=10&jobInstanceId=1' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 943
{
"_embedded" : {
"jobExecutionThinResourceList" : [ {
"executionId" : 1,
"stepExecutionCount" : 0,
"jobId" : 1,
"taskExecutionId" : 1,
"instanceId" : 1,
"name" : "DOCJOB",
"startDate" : "2021-10-12",
"startTime" : "09:26:44",
"startDateTime" : "2021-10-12T09:26:44.837+0000",
"duration" : "00:00:00",
"jobParameters" : { },
"jobParametersString" : "",
"restartable" : false,
"abandonable" : true,
"stoppable" : false,
"defined" : false,
"timeZone" : "UTC",
"status" : "STOPPING",
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/thinexecutions/1"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/thinexecutions?page=0&size=10"
}
},
"page" : {
"size" : 10,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
44.12.7. 列出指定任务执行 ID 的所有任务执行,不包括步骤执行
任务执行终端节点允许您列出所有任务执行。 以下主题提供了更多详细信息:
请求结构
GET /jobs/thinexecutions?page=0&size=10&taskExecutionId=1 HTTP/1.1
Host: localhost:9393
请求参数
参数 | 描述 |
---|---|
|
从零开始的页码(可选) |
|
请求的页面大小(可选) |
|
按任务执行 ID 筛选结果 |
示例请求
$ curl 'http://localhost:9393/jobs/thinexecutions?page=0&size=10&taskExecutionId=1' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 943
{
"_embedded" : {
"jobExecutionThinResourceList" : [ {
"executionId" : 1,
"stepExecutionCount" : 0,
"jobId" : 1,
"taskExecutionId" : 1,
"instanceId" : 1,
"name" : "DOCJOB",
"startDate" : "2021-10-12",
"startTime" : "09:26:44",
"startDateTime" : "2021-10-12T09:26:44.837+0000",
"duration" : "00:00:00",
"jobParameters" : { },
"jobParametersString" : "",
"restartable" : false,
"abandonable" : true,
"stoppable" : false,
"defined" : false,
"timeZone" : "UTC",
"status" : "STOPPING",
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/thinexecutions/1"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/thinexecutions?page=0&size=10"
}
},
"page" : {
"size" : 10,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
44.12.8. 任务执行细节
任务执行终端节点允许您获取有关任务执行的详细信息。 以下主题提供了更多详细信息:
请求结构
GET /jobs/executions/2 HTTP/1.1
Host: localhost:9393
/jobs/executions/{id}
参数 | 描述 |
---|---|
|
现有任务执行的 ID(必需) |
请求参数
此终端节点没有请求参数。
示例请求
$ curl 'http://localhost:9393/jobs/executions/2' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1321
{
"executionId" : 2,
"stepExecutionCount" : 0,
"jobId" : 2,
"taskExecutionId" : 2,
"name" : "DOCJOB1",
"startDate" : "2021-10-12",
"startTime" : "09:26:44",
"duration" : "00:00:01",
"jobExecution" : {
"id" : 2,
"version" : 1,
"jobParameters" : {
"parameters" : { },
"empty" : true
},
"jobInstance" : {
"id" : 2,
"version" : 0,
"jobName" : "DOCJOB1",
"instanceId" : 2
},
"stepExecutions" : [ ],
"status" : "STOPPED",
"startTime" : "2021-10-12T09:26:44.841+0000",
"createTime" : "2021-10-12T09:26:44.840+0000",
"endTime" : null,
"lastUpdated" : "2021-10-12T09:26:44.841+0000",
"exitStatus" : {
"exitCode" : "UNKNOWN",
"exitDescription" : "",
"running" : true
},
"executionContext" : {
"dirty" : false,
"empty" : true,
"values" : [ ]
},
"failureExceptions" : [ ],
"jobConfigurationName" : null,
"running" : true,
"jobId" : 2,
"stopping" : false,
"allFailureExceptions" : [ ]
},
"jobParameters" : { },
"jobParametersString" : "",
"restartable" : true,
"abandonable" : true,
"stoppable" : false,
"defined" : true,
"timeZone" : "UTC",
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/executions/2"
}
}
}
44.12.9. 停止任务执行
任务执行终端节点允许您停止任务执行。 以下主题提供了更多详细信息:
请求结构
PUT /jobs/executions/1 HTTP/1.1
Accept: application/json
Host: localhost:9393
Content-Type: application/x-www-form-urlencoded
stop=true
/jobs/executions/{id}
参数 | 描述 |
---|---|
|
现有任务执行的 ID(必需) |
请求参数
参数 | 描述 |
---|---|
|
如果设置为 true,则发送信号以停止作业 |
示例请求
$ curl 'http://localhost:9393/jobs/executions/1' -i -X PUT \
-H 'Accept: application/json' \
-d 'stop=true'
响应结构
HTTP/1.1 200 OK
44.12.10. 重新启动任务执行
任务执行终端节点允许您重新启动任务执行。 以下主题提供了更多详细信息:
请求结构
PUT /jobs/executions/2 HTTP/1.1
Accept: application/json
Host: localhost:9393
Content-Type: application/x-www-form-urlencoded
restart=true
/jobs/executions/{id}
参数 | 描述 |
---|---|
|
现有任务执行的 ID(必需) |
请求参数
参数 | 描述 |
---|---|
|
如果设置为 true,则发送信号以重新启动作业 |
示例请求
$ curl 'http://localhost:9393/jobs/executions/2' -i -X PUT \
-H 'Accept: application/json' \
-d 'restart=true'
响应结构
HTTP/1.1 200 OK
44.13. 作业实例
作业实例终端节点提供有关向 Spring Cloud Data Flow 服务器注册的作业实例的信息。 以下主题提供了更多详细信息:
44.13.1. 列出所有 Job 实例
的 job instances 端点允许您列出所有 job 实例。 以下主题提供了更多详细信息:
请求结构
GET /jobs/instances?name=DOCJOB&page=0&size=10 HTTP/1.1
Host: localhost:9393
请求参数
参数 | 描述 |
---|---|
|
从零开始的页码(可选) |
|
请求的页面大小(可选) |
|
与作业实例关联的名称 |
示例请求
$ curl 'http://localhost:9393/jobs/instances?name=DOCJOB&page=0&size=10' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 2014
{
"_embedded" : {
"jobInstanceResourceList" : [ {
"jobName" : "DOCJOB",
"jobInstanceId" : 1,
"jobExecutions" : [ {
"executionId" : 1,
"stepExecutionCount" : 0,
"jobId" : 1,
"taskExecutionId" : 1,
"name" : "DOCJOB",
"startDate" : "2021-10-12",
"startTime" : "09:26:42",
"duration" : "00:00:00",
"jobExecution" : {
"id" : 1,
"version" : 1,
"jobParameters" : {
"parameters" : { },
"empty" : true
},
"jobInstance" : {
"id" : 1,
"version" : 0,
"jobName" : "DOCJOB",
"instanceId" : 1
},
"stepExecutions" : [ ],
"status" : "STARTED",
"startTime" : "2021-10-12T09:26:42.981+0000",
"createTime" : "2021-10-12T09:26:42.979+0000",
"endTime" : null,
"lastUpdated" : "2021-10-12T09:26:42.981+0000",
"exitStatus" : {
"exitCode" : "UNKNOWN",
"exitDescription" : "",
"running" : true
},
"executionContext" : {
"dirty" : false,
"empty" : true,
"values" : [ ]
},
"failureExceptions" : [ ],
"jobConfigurationName" : null,
"running" : true,
"jobId" : 1,
"stopping" : false,
"allFailureExceptions" : [ ]
},
"jobParameters" : { },
"jobParametersString" : "",
"restartable" : false,
"abandonable" : false,
"stoppable" : true,
"defined" : false,
"timeZone" : "UTC"
} ],
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/instances/1"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/instances?page=0&size=10"
}
},
"page" : {
"size" : 10,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
44.13.2. Job 实例详细信息
的 job instances 端点允许您列出所有 job 实例。 以下主题提供了更多详细信息:
请求结构
GET /jobs/instances/1 HTTP/1.1
Host: localhost:9393
/jobs/instances/{id}
参数 | 描述 |
---|---|
|
现有作业实例的 ID(必需) |
请求参数
此终端节点没有请求参数。
示例请求
$ curl 'http://localhost:9393/jobs/instances/1' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 1499
{
"jobName" : "DOCJOB",
"jobInstanceId" : 1,
"jobExecutions" : [ {
"executionId" : 1,
"stepExecutionCount" : 0,
"jobId" : 1,
"taskExecutionId" : 1,
"name" : "DOCJOB",
"startDate" : "2021-10-12",
"startTime" : "09:26:42",
"duration" : "00:00:00",
"jobExecution" : {
"id" : 1,
"version" : 1,
"jobParameters" : {
"parameters" : { },
"empty" : true
},
"jobInstance" : {
"id" : 1,
"version" : 0,
"jobName" : "DOCJOB",
"instanceId" : 1
},
"stepExecutions" : [ ],
"status" : "STARTED",
"startTime" : "2021-10-12T09:26:42.981+0000",
"createTime" : "2021-10-12T09:26:42.979+0000",
"endTime" : null,
"lastUpdated" : "2021-10-12T09:26:42.981+0000",
"exitStatus" : {
"exitCode" : "UNKNOWN",
"exitDescription" : "",
"running" : true
},
"executionContext" : {
"dirty" : false,
"empty" : true,
"values" : [ ]
},
"failureExceptions" : [ ],
"jobConfigurationName" : null,
"running" : true,
"jobId" : 1,
"stopping" : false,
"allFailureExceptions" : [ ]
},
"jobParameters" : { },
"jobParametersString" : "",
"restartable" : false,
"abandonable" : false,
"stoppable" : true,
"defined" : false,
"timeZone" : "UTC"
} ],
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/instances/1"
}
}
}
44.14. 作业步骤执行
作业步骤执行终端节点提供有关注册到 Spring Cloud Data Flow 服务器的作业步骤执行的信息。 以下主题提供了更多详细信息:
44.14.1. 列出任务执行的所有步骤执行
任务步骤执行终端节点允许您列出所有任务步骤执行。 以下主题提供了更多详细信息:
请求结构
GET /jobs/executions/1/steps?page=0&size=10 HTTP/1.1
Host: localhost:9393
请求参数
参数 | 描述 |
---|---|
|
从零开始的页码(可选) |
|
请求的页面大小(可选) |
示例请求
$ curl 'http://localhost:9393/jobs/executions/1/steps?page=0&size=10' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 1677
{
"_embedded" : {
"stepExecutionResourceList" : [ {
"jobExecutionId" : 1,
"stepExecution" : {
"id" : 1,
"version" : 0,
"stepName" : "DOCJOB_STEP",
"status" : "STARTING",
"readCount" : 0,
"writeCount" : 0,
"commitCount" : 0,
"rollbackCount" : 0,
"readSkipCount" : 0,
"processSkipCount" : 0,
"writeSkipCount" : 0,
"startTime" : "2021-10-12T09:26:27.879+0000",
"endTime" : null,
"lastUpdated" : "2021-10-12T09:26:27.879+0000",
"executionContext" : {
"dirty" : false,
"empty" : true,
"values" : [ ]
},
"exitStatus" : {
"exitCode" : "EXECUTING",
"exitDescription" : "",
"running" : true
},
"terminateOnly" : false,
"filterCount" : 0,
"failureExceptions" : [ ],
"jobParameters" : {
"parameters" : { },
"empty" : true
},
"jobExecutionId" : 1,
"skipCount" : 0,
"summary" : "StepExecution: id=1, version=0, name=DOCJOB_STEP, status=STARTING, exitStatus=EXECUTING, readCount=0, filterCount=0, writeCount=0 readSkipCount=0, writeSkipCount=0, processSkipCount=0, commitCount=0, rollbackCount=0"
},
"stepType" : "",
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/executions/1/steps/1"
}
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/executions/1/steps?page=0&size=10"
}
},
"page" : {
"size" : 10,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
44.14.2. Job Step 执行细节
任务步骤执行终端节点允许您获取有关任务步骤执行的详细信息。 以下主题提供了更多详细信息:
请求结构
GET /jobs/executions/1/steps/1 HTTP/1.1
Host: localhost:9393
/jobs/executions/{id}/steps/{stepid}
参数 | 描述 |
---|---|
|
现有任务执行的 ID(必需) |
|
特定任务执行的现有步骤执行的 ID(必需) |
请求参数
此终端节点没有请求参数。
示例请求
$ curl 'http://localhost:9393/jobs/executions/1/steps/1' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 1219
{
"jobExecutionId" : 1,
"stepExecution" : {
"id" : 1,
"version" : 0,
"stepName" : "DOCJOB_STEP",
"status" : "STARTING",
"readCount" : 0,
"writeCount" : 0,
"commitCount" : 0,
"rollbackCount" : 0,
"readSkipCount" : 0,
"processSkipCount" : 0,
"writeSkipCount" : 0,
"startTime" : "2021-10-12T09:26:27.879+0000",
"endTime" : null,
"lastUpdated" : "2021-10-12T09:26:27.879+0000",
"executionContext" : {
"dirty" : false,
"empty" : true,
"values" : [ ]
},
"exitStatus" : {
"exitCode" : "EXECUTING",
"exitDescription" : "",
"running" : true
},
"terminateOnly" : false,
"filterCount" : 0,
"failureExceptions" : [ ],
"jobParameters" : {
"parameters" : { },
"empty" : true
},
"jobExecutionId" : 1,
"skipCount" : 0,
"summary" : "StepExecution: id=1, version=0, name=DOCJOB_STEP, status=STARTING, exitStatus=EXECUTING, readCount=0, filterCount=0, writeCount=0 readSkipCount=0, writeSkipCount=0, processSkipCount=0, commitCount=0, rollbackCount=0"
},
"stepType" : "",
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/executions/1/steps/1"
}
}
}
44.14.3. Job Step 执行进度
任务步骤执行终端节点允许您获取有关任务步骤执行进度的详细信息。 以下主题提供了更多详细信息:
请求结构
GET /jobs/executions/1/steps/1/progress HTTP/1.1
Host: localhost:9393
/jobs/executions/{id}/steps/{stepid}/progress
参数 | 描述 |
---|---|
|
现有任务执行的 ID(必需) |
|
特定任务执行的现有步骤执行的 ID(必需) |
请求参数
此终端节点没有请求参数。
示例请求
$ curl 'http://localhost:9393/jobs/executions/1/steps/1/progress' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/hal+json
Content-Length: 2722
{
"stepExecution" : {
"id" : 1,
"version" : 0,
"stepName" : "DOCJOB_STEP",
"status" : "STARTING",
"readCount" : 0,
"writeCount" : 0,
"commitCount" : 0,
"rollbackCount" : 0,
"readSkipCount" : 0,
"processSkipCount" : 0,
"writeSkipCount" : 0,
"startTime" : "2021-10-12T09:26:27.879+0000",
"endTime" : null,
"lastUpdated" : "2021-10-12T09:26:27.879+0000",
"executionContext" : {
"dirty" : false,
"empty" : true,
"values" : [ ]
},
"exitStatus" : {
"exitCode" : "EXECUTING",
"exitDescription" : "",
"running" : true
},
"terminateOnly" : false,
"filterCount" : 0,
"failureExceptions" : [ ],
"jobParameters" : {
"parameters" : { },
"empty" : true
},
"jobExecutionId" : 1,
"skipCount" : 0,
"summary" : "StepExecution: id=1, version=0, name=DOCJOB_STEP, status=STARTING, exitStatus=EXECUTING, readCount=0, filterCount=0, writeCount=0 readSkipCount=0, writeSkipCount=0, processSkipCount=0, commitCount=0, rollbackCount=0"
},
"stepExecutionHistory" : {
"stepName" : "DOCJOB_STEP",
"count" : 0,
"commitCount" : {
"count" : 0,
"min" : 0.0,
"max" : 0.0,
"mean" : 0.0,
"standardDeviation" : 0.0
},
"rollbackCount" : {
"count" : 0,
"min" : 0.0,
"max" : 0.0,
"mean" : 0.0,
"standardDeviation" : 0.0
},
"readCount" : {
"count" : 0,
"min" : 0.0,
"max" : 0.0,
"mean" : 0.0,
"standardDeviation" : 0.0
},
"writeCount" : {
"count" : 0,
"min" : 0.0,
"max" : 0.0,
"mean" : 0.0,
"standardDeviation" : 0.0
},
"filterCount" : {
"count" : 0,
"min" : 0.0,
"max" : 0.0,
"mean" : 0.0,
"standardDeviation" : 0.0
},
"readSkipCount" : {
"count" : 0,
"min" : 0.0,
"max" : 0.0,
"mean" : 0.0,
"standardDeviation" : 0.0
},
"writeSkipCount" : {
"count" : 0,
"min" : 0.0,
"max" : 0.0,
"mean" : 0.0,
"standardDeviation" : 0.0
},
"processSkipCount" : {
"count" : 0,
"min" : 0.0,
"max" : 0.0,
"mean" : 0.0,
"standardDeviation" : 0.0
},
"duration" : {
"count" : 0,
"min" : 0.0,
"max" : 0.0,
"mean" : 0.0,
"standardDeviation" : 0.0
},
"durationPerRead" : {
"count" : 0,
"min" : 0.0,
"max" : 0.0,
"mean" : 0.0,
"standardDeviation" : 0.0
}
},
"percentageComplete" : 0.5,
"finished" : false,
"duration" : 208.0,
"_links" : {
"self" : {
"href" : "http://localhost:9393/jobs/executions/1/steps/1"
}
}
}
44.15. 有关应用程序的运行时信息
您可以全局或单独获取有关系统已知正在运行的应用程序的信息。 以下主题提供了更多详细信息:
44.15.1. 在运行时列出所有应用程序
要检索有关所有应用程序的所有实例的信息,请使用 查询终端节点。
以下主题提供了更多详细信息:/runtime/apps
GET
请求结构
GET /runtime/apps HTTP/1.1
Accept: application/json
Host: localhost:9393
示例请求
$ curl 'http://localhost:9393/runtime/apps' -i -X GET \
-H 'Accept: application/json'
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 209
{
"_links" : {
"self" : {
"href" : "http://localhost:9393/runtime/apps?page=0&size=20"
}
},
"page" : {
"size" : 20,
"totalElements" : 0,
"totalPages" : 0,
"number" : 0
}
}
44.15.2. 查询单个应用程序的所有实例
要检索有关特定应用程序的所有实例的信息,请使用 .
以下主题提供了更多详细信息:/runtime/apps/<appId>/instances
GET
请求结构
GET /runtime/apps HTTP/1.1
Accept: application/json
Host: localhost:9393
示例请求
$ curl 'http://localhost:9393/runtime/apps' -i -X GET \
-H 'Accept: application/json'
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 209
{
"_links" : {
"self" : {
"href" : "http://localhost:9393/runtime/apps?page=0&size=20"
}
},
"page" : {
"size" : 20,
"totalElements" : 0,
"totalPages" : 0,
"number" : 0
}
}
44.15.3. 查询单个应用程序的单个实例
要检索有关特定应用程序的特定实例的信息,请使用 查询端点。
以下主题提供了更多详细信息:/runtime/apps/<appId>/instances/<instanceId>
GET
请求结构
GET /runtime/apps HTTP/1.1
Accept: application/json
Host: localhost:9393
示例请求
$ curl 'http://localhost:9393/runtime/apps' -i -X GET \
-H 'Accept: application/json'
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 209
{
"_links" : {
"self" : {
"href" : "http://localhost:9393/runtime/apps?page=0&size=20"
}
},
"page" : {
"size" : 20,
"totalElements" : 0,
"totalPages" : 0,
"number" : 0
}
}
44.16. 流日志
您可以获取整个流或流中特定应用程序的流的应用程序日志。 以下主题提供了更多详细信息:
44.16.1. 通过流名称获取应用程序的日志
将 HTTP 方法与 REST 终端节点结合使用,以检索给定流名称的所有应用程序日志。
以下主题提供了更多详细信息:GET
/streams/logs/<streamName>
请求结构
GET /streams/logs/ticktock HTTP/1.1
Host: localhost:9393
示例请求
$ curl 'http://localhost:9393/streams/logs/ticktock' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 93
{
"logs" : {
"ticktock-time-v1" : "Logs-time",
"ticktock-log-v1" : "Logs-log"
}
}
44.16.2. 从流中获取特定应用程序的日志
要从流中检索特定应用程序的日志,请使用 HTTP 方法查询终端节点。
以下主题提供了更多详细信息:/streams/logs/<streamName>/<appName>
GET
请求结构
GET /streams/logs/ticktock/ticktock-log-v1 HTTP/1.1
Host: localhost:9393
示例请求
$ curl 'http://localhost:9393/streams/logs/ticktock/ticktock-log-v1' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 55
{
"logs" : {
"ticktock-log-v1" : "Logs-log"
}
}
44.17. 任务日志
您可以获取特定任务执行的任务执行日志。
以下主题提供了更多详细信息:
44.17.1. 获取任务执行日志
要检索任务执行的日志,请使用 HTTP 方法查询终端节点。
以下主题提供了更多详细信息:/tasks/logs/<ExternalTaskExecutionId>
GET
请求结构
GET /tasks/logs/taskA-6a8ed64e-9586-46ba-9a66-13ea51301156?platformName=default HTTP/1.1
Host: localhost:9393
请求参数
参数 | 描述 |
---|---|
|
启动任务的平台的名称。 |
示例请求
$ curl 'http://localhost:9393/tasks/logs/taskA-6a8ed64e-9586-46ba-9a66-13ea51301156?platformName=default' -i -X GET
响应结构
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 10043
"stdout:\n2021-10-12 09:23:57.730 INFO 3348 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@4e515669: startup date [Tue Oct 12 09:23:57 UTC 2021]; root of context hierarchy\n2021-10-12 09:23:58.175 INFO 3348 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'configurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$b056ca48] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)\n\n . ____ _ __ _ _\n /\\\\ / ___'_ __ _ _(_)_ __ __ _ \\ \\ \\ \\\n( ( )\\___ | '_ | '_| | '_ \\/ _` | \\ \\ \\ \\\n \\\\/ ___)| |_)| | | | | || (_| | ) ) ) )\n ' |____| .__|_| |_|_| |_\\__, | / / / /\n =========|_|==============|___/=/_/_/_/\n :: Spring Boot :: (v1.5.2.RELEASE)\n\n2021-10-12 09:23:58.394 INFO 3348 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at: http://localhost:8888\n2021-10-12 09:23:58.464 WARN 3348 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Could not locate PropertySource: I/O error on GET request for \"http://localhost:8888/timestamp-task/default\": Connection refused (Connection refused); nested exception is java.net.ConnectException: Connection refused (Connection refused)\n2021-10-12 09:23:58.465 INFO 3348 --- [ main] o.s.c.t.a.t.TimestampTaskApplication : No active profile set, falling back to default profiles: default\n2021-10-12 09:23:58.479 INFO 3348 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@445b84c0: startup date [Tue Oct 12 09:23:58 UTC 2021]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@4e515669\n2021-10-12 09:23:59.031 INFO 3348 --- [ main] o.s.cloud.context.scope.GenericScope : BeanFactory id=1e36064f-ccbe-3d2f-9196-128427cc78a0\n2021-10-12 09:23:59.122 INFO 3348 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$b056ca48] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)\n2021-10-12 09:23:59.133 INFO 3348 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$943cc74b] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)\n2021-10-12 09:23:59.718 INFO 3348 --- [ main] o.s.jdbc.datasource.init.ScriptUtils : Executing SQL script from class path resource [org/springframework/cloud/task/schema-h2.sql]\n2021-10-12 09:23:59.755 INFO 3348 --- [ main] o.s.jdbc.datasource.init.ScriptUtils : Executed SQL script from class path resource [org/springframework/cloud/task/schema-h2.sql] in 37 ms.\n2021-10-12 09:24:00.114 INFO 3348 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup\n2021-10-12 09:24:00.120 INFO 3348 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Bean with name 'configurationPropertiesRebinder' has been autodetected for JMX exposure\n2021-10-12 09:24:00.121 INFO 3348 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Bean with name 'environmentManager' has been autodetected for JMX exposure\n2021-10-12 09:24:00.122 INFO 3348 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Bean with name 'refreshScope' has been autodetected for JMX exposure\n2021-10-12 09:24:00.123 INFO 3348 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Located managed bean 'environmentManager': registering with JMX server as MBean [taskA-6a8ed64e-9586-46ba-9a66-13ea51301156:name=environmentManager,type=EnvironmentManager]\n2021-10-12 09:24:00.134 INFO 3348 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Located managed bean 'refreshScope': registering with JMX server as MBean [taskA-6a8ed64e-9586-46ba-9a66-13ea51301156:name=refreshScope,type=RefreshScope]\n2021-10-12 09:24:00.142 INFO 3348 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Located managed bean 'configurationPropertiesRebinder': registering with JMX server as MBean [taskA-6a8ed64e-9586-46ba-9a66-13ea51301156:name=configurationPropertiesRebinder,context=445b84c0,type=ConfigurationPropertiesRebinder]\n2021-10-12 09:24:00.205 INFO 3348 --- [ main] o.s.c.support.DefaultLifecycleProcessor : Starting beans in phase 0\n2021-10-12 09:24:00.218 WARN 3348 --- [ main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'taskLifecycleListener'; nested exception is java.lang.IllegalArgumentException: Invalid TaskExecution, ID 1 not found\n2021-10-12 09:24:00.219 INFO 3348 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown\n2021-10-12 09:24:00.219 INFO 3348 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans\n2021-10-12 09:24:00.219 ERROR 3348 --- [ main] o.s.c.t.listener.TaskLifecycleListener : An event to end a task has been received for a task that has not yet started.\n2021-10-12 09:24:00.225 INFO 3348 --- [ main] utoConfigurationReportLoggingInitializer : \n\nError starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.\n2021-10-12 09:24:00.231 ERROR 3348 --- [ main] o.s.boot.SpringApplication : Application startup failed\n\norg.springframework.context.ApplicationContextException: Failed to start bean 'taskLifecycleListener'; nested exception is java.lang.IllegalArgumentException: Invalid TaskExecution, ID 1 not found\n\tat org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178) ~[spring-context-4.3.7.RELEASE.jar!/:4.3.7.RELEASE]\n\tat org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:50) ~[spring-context-4.3.7.RELEASE.jar!/:4.3.7.RELEASE]\n\tat org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:348) ~[spring-context-4.3.7.RELEASE.jar!/:4.3.7.RELEASE]\n\tat org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:151) ~[spring-context-4.3.7.RELEASE.jar!/:4.3.7.RELEASE]\n\tat org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:114) ~[spring-context-4.3.7.RELEASE.jar!/:4.3.7.RELEASE]\n\tat org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:879) ~[spring-context-4.3.7.RELEASE.jar!/:4.3.7.RELEASE]\n\tat org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:545) ~[spring-context-4.3.7.RELEASE.jar!/:4.3.7.RELEASE]\n\tat org.springframework.boot.SpringApplication.refresh(SpringApplication.java:737) [spring-boot-1.5.2.RELEASE.jar!/:1.5.2.RELEASE]\n\tat org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370) [spring-boot-1.5.2.RELEASE.jar!/:1.5.2.RELEASE]\n\tat org.springframework.boot.SpringApplication.run(SpringApplication.java:314) [spring-boot-1.5.2.RELEASE.jar!/:1.5.2.RELEASE]\n\tat org.springframework.boot.SpringApplication.run(SpringApplication.java:1162) [spring-boot-1.5.2.RELEASE.jar!/:1.5.2.RELEASE]\n\tat org.springframework.boot.SpringApplication.run(SpringApplication.java:1151) [spring-boot-1.5.2.RELEASE.jar!/:1.5.2.RELEASE]\n\tat org.springframework.cloud.task.app.timestamp.TimestampTaskApplication.main(TimestampTaskApplication.java:29) [classes!/:1.2.0.RELEASE]\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_302]\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_302]\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_302]\n\tat java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_302]\n\tat org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) [timestamp-task-1.2.0.RELEASE.jar:1.2.0.RELEASE]\n\tat org.springframework.boot.loader.Launcher.launch(Launcher.java:87) [timestamp-task-1.2.0.RELEASE.jar:1.2.0.RELEASE]\n\tat org.springframework.boot.loader.Launcher.launch(Launcher.java:50) [timestamp-task-1.2.0.RELEASE.jar:1.2.0.RELEASE]\n\tat org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) [timestamp-task-1.2.0.RELEASE.jar:1.2.0.RELEASE]\nCaused by: java.lang.IllegalArgumentException: Invalid TaskExecution, ID 1 not found\n\tat org.springframework.util.Assert.notNull(Assert.java:134) ~[spring-core-4.3.7.RELEASE.jar!/:4.3.7.RELEASE]\n\tat org.springframework.cloud.task.listener.TaskLifecycleListener.doTaskStart(TaskLifecycleListener.java:200) ~[spring-cloud-task-core-1.2.0.RELEASE.jar!/:1.2.0.RELEASE]\n\tat org.springframework.cloud.task.listener.TaskLifecycleListener.start(TaskLifecycleListener.java:282) ~[spring-cloud-task-core-1.2.0.RELEASE.jar!/:1.2.0.RELEASE]\n\tat org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:175) ~[spring-context-4.3.7.RELEASE.jar!/:4.3.7.RELEASE]\n\t... 20 common frames omitted\n\n"