作业重启后不传递组合任务参数

Composed task arguments are not passed after job restart

我是 运行 一个包含三个子任务的组合任务。

组合任务定义:

composed-task-runner --graph='task1 && task2 && task3'

启动命令

task launch my-composed-task --properties "app.composed-task-runner.composed-task-arguments=arg1=a.txt arg2=test"

场景一: 当组合任务运行没有任何错误时,参数将传递给所有子任务。

场景二: 当第二个子任务失败并且作业重新启动时,组合的任务参数将传递给第二个子任务而不是第三个子任务

场景 3:

当第一个和第二个任务成功而第三个子任务失败时,如果作业重新启动,组合的任务参数现在传递给第三个子任务。

观察: 任务失败并重新启动后,组合任务参数仅传递给失败的任务,而不传递给失败后的任务。

作业重启后如何在组合任务中检索参数?这种行为的原因可能是什么?

使用的版本:

Spring cloud local server - 1.7.3 , Spring boot - 2.0.4 , Spring cloud starter task - 2.0.0

您遇到的问题是 SCDF 未存储启动时指定的属性。 此问题正在此处跟踪:https://github.com/spring-cloud/spring-cloud-dataflow/issues/2807 并计划在 SCDF 2.0.0 中修复 [细节] 因此,当作业重新启动时,这些属性不会提交(因为它们当前未存储)到新的 CTR 启动。 因此后续任务(在失败的任务成功之后)将不会为它们设置属性。 失败的作业仍然具有此值的原因是参数存储在该步骤的 batch-step-execution-context 中。 [变通直到问题得到解决] 不要重新启动作业,而是使用属性启动 CTR 任务定义(只要它们相同)。