Spring Batch 作业状态未在数据库中更新

Posted

技术标签:

【中文标题】Spring Batch 作业状态未在数据库中更新【英文标题】:Spring Batch job status not updated in database 【发布时间】:2021-10-07 18:57:33 【问题描述】:

我创建了一个 Spring 批处理应用程序,其中我使用 AMQ 配置了远程分块。 参考下面的例子: https://docs.spring.io/spring-batch/docs/current/reference/html/spring-batch-integration.html#remote-chunking

应用程序运行良好并且能够处理不同应用程序实例中的块。但是 Spring 批处理相关的表没有更新为完成状态。

当应用程序在单个实例中运行时同样有效。

如果我必须引入任何额外的步骤来更新步骤和完成工作,有人可以帮忙吗?

【问题讨论】:

我遇到了问题。我已经开始了 2 个 master 和 2 个 Worker。这导致错误。 但在我的情况下,我无法在单独的模块中创建 Master 和 Worker。有没有办法使用我只能为多个应用程序实例配置一个管理器? 【参考方案1】:

您可以为此使用 Spring 配置文件。这允许您拥有一个包含管理器和工作器代码的模块,并在启动应用程序时选择要运行的模块。您可以在此处找到示例:https://github.com/mminella/scaling-demos/tree/sp1-2018#remote-chunking。

【讨论】:

以上是关于Spring Batch 作业状态未在数据库中更新的主要内容,如果未能解决你的问题,请参考以下文章

强制终止后 Spring Batch 不更新作业存储库

禁用 Spring Batch 作业

在 Spring Batch 中以最后处理的记录作为 jobParameter 启动一个新的作业实例?

如何将 Spring Batch Cron 作业迁移到 Spring Cloud 任务

Spring Batch tasklet中的嵌套事务不起作用

关于这个 Spring Batch @Scheduled() 注解以及如何手动启动 Spring Batch 作业的一些疑问?