我有一个需求,我已经使用spring-batch-admin JSON api为spring-batch监控创建了一个自定义UI。我有一个要求,当作业的一个实例当前正在运行时,我不想让用户启动该作业。
有没有REST Url可以告诉我作业实例的状态,无论作业是否正在进行?
有没有办法开发一个自定义的REST url来提供这个功能。
请帮帮忙。
发布于 2016-09-19 23:36:13
从未使用过此接口,但来自此站点: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的状态。
编辑:在服务器端,您可以创建rest端点并使用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
https://stackoverflow.com/questions/39574590
复制相似问题