Spring 批处理 - 处理 worker 配置错误

Spring Batch - handle worker configuration error

我们有一个 Spring 批处理应用程序,计划每 30 分钟 运行 一次,它在云上创建单独的工作程序 pods。

在配置 class 中,其中一个 bean 连接到数据库并读取一些属性。如果此 DB 连接由于某种原因失败,则 worker 不会启动并且 Master 作业在 30 分钟后不会再次触发。

发生这种情况是因为如果 worker 本身在启动时失败,它不会更新数据库中的最终状态或将其作为失败传达给 master。因此,Master 假设它仍然是 运行ning 并且不会再次触发 Batch。

有没有人对如何处理这个问题以及如何确保 Master 在预定的持续时间内再次触发 worker 有任何建议?

问题是关于高可用性。

你可以在db前面加上redis。如果我们不能从redis读取配置然后连接数据库。

第二,在你的bean中添加像resilience4j这样的重试服务来多次读取你的配置。

第三,对于警告,你可以添加你的云的相关警告服务来通知你哪个pod启动失败。然后您可以手动或自动重启该 pod。