我的直截了当的问题是:在 Spring Batch Admin 中有一个清晰的概念和实用的功能来管理工作。因此,在 Spring Batch Admin 中,您可以启动、停止一项作业、停止所有作业、重新启动、放弃、查看每个作业的状态并检查它是成功还是失败。如果我在同一服务器中使用部署为战争的 Spring Cloud Task 和部署为战争的 Spring Boot Admin,我该如何管理我的工作?
更好地解释我的背景:在过去的 6 个月中,我开发了一些 Spring Batch 工作。所有这些都是为了定期运行而设计的,换句话说,是按计划运行的。我没有计划将它们部署在 Web 服务器中,但我公司在发布到生产环境的那一刻被告知,我必须在大型机 Websphere 中运行任何解决方案。
这根本不是问题,因为我意识到我可以使用 Spring Batch Admin 来启动/停止部署在同一个 EAR 中的所有 Spring Batch。不幸的是,Websphere ND 8.5 不符合 Spring Batch Admin(您可能听说有人告诉他/她已经设法让 Spring Batch Admin 在 Websphere 8.5 ND 中启动并运行,但我从 IBM 得到了最终的立场,即 JSR352 和 Spring Batch 都不是Admin 可以安全使用)。
一周前,由于对我的问题如何注册 org.springframework.integration.monitor.IntegrationMBeanExporter的某些评论,我第一次与 Spring Boot Admin 取得了联系。
在这样的评论中,我读到“......考虑摆脱批处理管理。这个项目已经过时了,有利于cloud.spring.io/spring-cloud-task......”但是在我看来它并不确实提供了与 Spring Batch Admin 相同的功能。在我看来,它更通用一些,并且针对的是应用程序框而不是作业执行。
为了让我的问题更清楚,假设我将此项目部署为战争https://github.com/spring-cloud/spring-cloud-task/blob/master/spring-cloud-task-samples/batch-job /src/main/java/io/spring/configuration/JobConfiguration.java并且这两个作业都安排为每 5 分钟运行一次。另外,在这样的项目中,我添加了必要的配置以使其对 Spring Boot Admin 可见(例如 spring-boot-admin-starter-client)。在同一台服务器中,我也将此 Spring Boot Admin 部署为战争https://github.com/codecentric/spring-boot-admin/tree/master/spring-boot-admin-samples/spring-boot-admin-sample-战争. 现在,我的问题与标题相同,但更具例证的是:我能否停止一项工作并让另一项工作继续从 Spring Boot Admin 运行?我可以启动一个而让另一个停止吗?
如果您,读者,对 Spring Batch Admin 有一个概述,可能会很快理解我的意图。我阅读了 Spring Boot 管理手册 http://codecentric.github.io/spring-boot-admin/1.4.1/#jmx-bean-management 3.2。JMX-bean 管理“...要在管理 UI 中与 JMX-beans 交互,您必须在应用程序中包含 Jolokia”。为了单独管理每项工作,是否有一些通过 Jolokia 的技巧?