我有一个要求,我使用 spring-batch-admin JSON api 创建了一个用于 spring-batch 监控的自定义 UI。我有一个要求,当该作业的实例当前正在进行时,我不想允许用户开始作业。
是否有任何 REST Url 可以向我提供作业实例的状态,无论作业是否正在进行?
有没有办法开发自定义 REST url 来提供此功能。
请帮忙。
从未使用过此 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