作业重启后不传递组合任务参数
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 任务定义(只要它们相同)。
我是 运行 一个包含三个子任务的组合任务。
组合任务定义:
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 任务定义(只要它们相同)。