将属性传递给Spring Cloud Dataflow的组合任务运行器应用程序的子任务

时间:2020-07-01 09:45:28

标签: spring spring-boot shell spring-cloud spring-cloud-dataflow

我正在尝试运行Spring Cloud数据流的组合任务运行程序,其中包含2个子任务(A和B)。我正在将属性传递给my-composited-task,该属性也必须传递给子任务,但没有传递给子应用程序。 以下是我正在使用的命令:

用于在数据流shell中创建任务:

task create my-composed-task --definition "A && B"

用于在数据流Shell中启动任务:

task launch my-composed-task --arguments "--spring.cloud.task.closecontextEnabled=true --increment-instance-enabled=true --composed-task-arguments=measurementyear=2020,--logging.level.org=ERROR,--spring.datasource.url=url,--spring.datasource.username=username,--spring.datasource.password=password" --properties "deployer.composed-task-runner.local.javaOpts=-Xmx8g"

属性参数“ deployer.composed-task-runner.local.javaOpts = -Xmx8g” 不会进入 my-composed-task 的子应用程序。

通过数据流外壳启动后,服务器将为创建的任务显示以下命令:

我的任务

o.s.c.d.spi.local.LocalTaskLauncher      : Command to be executed: C:\Program Files\jdk1.8.0_152\jre\bin\java.exe -Xmx8g -jar C:\Users\shivani.chittauri\Desktop\jar\composedtaskrunner-task-2.1.0.RELEASE.jar --spring.cloud.task.closecontextEnabled=true --composed-task-arguments=measurementyear=2020,--spring.messages.encoding=UTF-8,--logging.level.org=ERROR,--spring.datasource.url=url,--spring.datasource.username=username,--spring.datasource.password=password --increment-instance-enabled=true --spring.cloud.dataflow.task.platform.local.accounts.default.javaOpts=-Xmx8g --spring.cloud.data.flow.platformname=default --spring.cloud.task.executionid=49 --spring.cloud.data.flow.taskappname=composed-task-runner

它的javaOpts为-Xmx8g,这是正确的

任务A

o.s.c.d.spi.local.LocalTaskLauncher      : Command to be executed: C:\Program Files\jdk1.8.0_152\jre\bin\java.exe -jar C:\Users\shivani.chittauri\Desktop\jar\A-1.0-SNAPSHOT.jar --spring.datasource.username=username --spring.datasource.url=url --spring.messages.encoding=UTF-8 --logging.level.org=ERROR --spring.datasource.password=password measurementyear=2020 --spring.cloud.data.flow.platformname=default --spring.cloud.task.executionid=50

它没有javaOpts,但应该有

任务B

o.s.c.d.spi.local.LocalTaskLauncher      : Command to be executed: C:\Program Files\jdk1.8.0_152\jre\bin\java.exe -jar C:\Users\shivani.chittauri\Desktop\jar\B-1.0-SNAPSHOT.jar --spring.datasource.username=username --spring.datasource.url=url --spring.messages.encoding=UTF-8 --logging.level.org=ERROR --spring.datasource.password=password measurementyear=2020 --spring.cloud.data.flow.platformname=default --spring.cloud.task.executionid=51

它没有javaOpts,但应该有

我也希望javaOpts出现在子任务中,该如何解决呢?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

如果要将appdeployer属性传递到子任务中,则需要引用子任务的app or label名称以使其符合子条件的条件任务。

例如,在您的情况下,您需要使用以下内容:

deployer.my-composed-task.A.local.javaOpts=-Xmx8g

在以上属性参考中,您会看到组成的任务my-composed-task的名称和子任务A的名称。

有关更多信息,您可以查看文档here