如何通过spring-batch-admin检查spring批处理作业的状态是否当前正在执行作业的实例?

时间:2016-09-19 13:36:27

标签: rest spring-batch spring-batch-admin

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

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

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

请帮助。

1 个答案:

答案 0 :(得分: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如果仍在运行,则应为STARTINGSTARTEDSTOPPING

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

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

状态

编辑:在服务器端,您可以创建一个休息端点并使用SynchronizedJobLauncher类,其中"全局同步作业,这样一次只能执行一个给定作业的一次。&#34 ; (http://docs.spring.io/spring-batch-admin/apidocs/org/springframework/batch/admin/launch/package-summary.html)。关于如何为json创建休息端点以及如何注入JobLauncher,有很多资源。

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