首页 > 解决方案 > 如何从 scdf shell 将参数传递给组合任务?

问题描述

我正在尝试通过 scdf shell 启动一个组合任务。参数未正确传递给子任务

组合任务定义:

组合任务--graph='app1 && app2'

从 shell 启动的命令:

任务启动组合任务名称 --arguments "--name=test"

参数在组合任务 jar 中传递和执行,而不是子任务并失败。在使用 Web UI 时,有一个名为composed-task-arguments 的选项将参数识别为子任务的参数。

Web UI 中的组合任务定义:

组合任务 --graph='app1 && app2' --composed-task-arguments ='--name=test'

--composed-task-arguments 在数据外壳中无法识别。只有 --arguments 有效。如何仅将参数从数据外壳传递给子任务?

标签: spring-cloudspring-cloud-dataflow

解决方案


本节Launching a Composed Task明确介绍了何时需要将属性和参数从 Shell 传递给子任务的场景。

特别是要将任意参数传递给子任务,您--arugments仍然必须使用该属性,但值将通过该composed-task-arguments属性传递。这是一个例子。

创造:

数据流:>任务创建组合任务--定义“t1:时间戳&& t2:时间戳”

发射:

数据流:>任务启动组合任务--arguments“--composed-task-arguments=foo=one bar=two”

通过这个任务启动,t1t2任务都应该在运行时收到“foo=one”和“bar=two”属性。


推荐阅读