如何通过 spring-batch-admin 检查 Spring Batch 作业的状态,该作业的实例当前是否正在执行?

问题描述 投票:0回答:1

我有一个要求,我使用 spring-batch-admin JSON api 创建了一个用于 spring-batch 监控的自定义 UI。我有一个要求,当该作业的实例当前正在进行时,我不想允许用户开始作业。

是否有任何 REST Url 可以向我提供作业实例的状态,无论作业是否正在进行?

有没有办法开发自定义 REST url 来提供此功能。

请帮忙。

rest spring-batch spring-batch-admin
1个回答
0
投票

从未使用过此 API,但来自此站点:http://docs.spring.io/spring-batch-admin/reference/json.html

您可以使用

http://localhost:8080/sprin-batch-admin-sample/batch/jobs/job1.json
(用 job1 替换您的实际作业名称和服务器)获取最后一个作业的状态(因此,如果有一个作业正在运行,则该作业正在运行)。如果仍在运行,参数
lastJobExecutionStatus
应为
STARTING
STARTED
STOPPING

可能的状态列表(检查您的批处理版本):http://docs.spring.io/spring-batch/apidocs/org/springframework/batch/core/BatchStatus.html#STARTING

请注意,作业可能会崩溃,使其处于类似

STARTED
的状态。

编辑:在服务器端,您可以创建一个休息端点并使用

SynchronizedJobLauncher
类,该类“全局同步作业,以便给定作业一次只能执行一次”。 (http://docs.spring.io/spring-batch-admin/apidocs/org/springframework/batch/admin/launch/package-summary.html)。有很多关于如何为 json 创建 REST 端点以及如何注入
JobLauncher
.

的资源

此处列出了其他可能性:http://docs.spring.io/spring-batch-admin/reference/reference.xhtml

© www.soinside.com 2019 - 2024. All rights reserved.