目前,我们正在使用Spring Cloud Dataflow运行我们根据定义创建的一系列应用程序。我们制作的每个应用程序都是弹簧批处理作业,具有单独的步骤。我们当前遇到的问题是,当应用程序批处理作业中的其中一个步骤失败时,它会在scdf数据库的step_execution,job_execution和task_execution表中按预期反映出来。但是,我们无法从顶级scdf级别重新运行应用程序中失败的任何scdf作业,因为似乎sCDF与整个应用程序相关的步骤的step_execution表中的行条目从未传播到状态列中的FAILED,而是无论发生什么,总是被完成。下面我已经包含了一张照片,其中包含了我所说的内容。 test-simple8-test-app是我们创建的应用程序,而check-step,sleep-step和should-error-step是该应用程序的工作内部的步骤。您可以在should-error-step中看到它对ExitCode和Status都有FAILED,而应用程序本身的条目的状态为COMPLETED,ExitCode为FAILED。
我们尝试更改task_execution表中的报告,因为我们看到CTR正在寻找某些字段,但它似乎仍然不会影响step_executions中的Status列。如果我们手动将db中的条目更改为该值的FAILED,它将按照我们的预期进行,并且对于spring批处理是正常的,因为它从该应用程序恢复作业并重新执行它。
有没有一种方法可以解决这个问题,还是我们接近它的方式有问题?