数据流仪表板中的Spring Cloud任务已完成但Spring Batch的一个分区失败

问题描述 投票:0回答:1

我有一个简单的 spring cloud 任务运行的 spring batch 远程分区项目。我在运行 spring batch 时使用 spring cloud dataflow。 春季启动版本 - 2.7.8 Spring Cloud 任务 - 2.4.5 spring cloud 数据流 - 2.10.1-SNAPSHOT

我在本地使用 docker compose for spring cloud dataflow,我也在使用 spring cloud local deployer。

我有 spring batch 将数据从一个表移动到同一数据库中的另一个表。我将 100 条记录的数据分成 4 个分区。我最初成为失败的分区之一。

加工后。 batch_job_execution 作业失败,batch_step_execution 分区之一失败。但同样的情况并未反映在 scdf 仪表板中。 在 scdf 仪表板中,任务和任务执行已完成但作业执行失败状态

两个问题:-

  1. 我如何确保 scdf 在仪表板中反映正确的批次状态?
  2. 如何重新启动失败的作业执行?

对于第一个问题,我尝试在 application.properties 中使用“spring.cloud.task.batch.fail-on-job-failure=true”属性,但我从 TaskJobLauncherApplicationRunnerFactoryBean.java 得到“Job must not be null nor empty”

对于第二个问题,我尝试使用下面的 REST API 重新启动任务 ->

curl 'http://localhost:9393/jobs/executions/1' -i -X PUT
-H '接受:应用程序/json'
-d '重启=真'

但是它重新启动了所有分区

spring-batch spring-cloud-dataflow spring-cloud-task
1个回答
0
投票

@sanjay 很高兴您通过设置

spring.cloud.task.batch.fail-on-job-failure=true
.
找到了解决问题的方法 您还可以在此处查看 Spring Cloud Task 中提供的示例:https://github.com/spring-cloud/spring-cloud-task/blob/main/spring-cloud-task-samples/partitioned-batch-作业/src/main/java/io/spring/JobConfiguration.java#LL100-L101C67

© www.soinside.com 2019 - 2024. All rights reserved.