在春季批处理部署程序分区处理程序中定期获取正在运行的工作节点的状态

Posted

技术标签:

【中文标题】在春季批处理部署程序分区处理程序中定期获取正在运行的工作节点的状态【英文标题】:Get status of running worker nodes at regular intervals in spring batch deployer partition handler 【发布时间】:2021-10-25 07:31:10 【问题描述】:

我正在使用部署器分区处理程序在春季批处理中进行远程分区。我想定期获取每个工作节点的状态并将其显示给用户。 (就像心跳一样)。有什么方法可以实现吗?

【问题讨论】:

【参考方案1】:

这取决于您的员工正在做什么(简单的小任务或面向块的小任务)以及他们如何报告进度。通常,工作人员与启动它们的管理器步骤共享同一个作业存储库,因此您应该能够使用JobExplorer API 在该存储库上跟踪他们的StepExecution 更新(readCount、writeCount 等)。

如果您将作业部署在 Spring Cloud DataFlow 上,您可以使用 Step execution progress endpoint 跟踪工作人员的进度。

【讨论】:

谢谢!另外,是否可以获取每个worker的cpu和内存使用情况? 是的。您可以使用 JMX 报告此类指标或利用 Spring Batch 和 Spring Boot 在幕后使用的 micrometer 监控和指标功能。请参考docs.spring.io/spring-batch/docs/4.3.x/reference/html/…和docs.spring.io/spring-boot/docs/current/reference/html/…

以上是关于在春季批处理部署程序分区处理程序中定期获取正在运行的工作节点的状态的主要内容,如果未能解决你的问题,请参考以下文章

春季批处理启动器应用程序 - 无法启动

动态创建作业的春季批处理测试

Spring Batch 分区处理程序错误

如何在 Rails 应用程序中处理定期/订阅计费?

春季批处理 - 传输文件

春季启动部署