执行之间不刷新Spring Cloud Dataflow Task属性

时间:2018-01-31 23:20:34

标签: spring-batch cloudfoundry pivotal-cloud-foundry spring-cloud-dataflow

我正在使用Cloud Foundry服务器jar文件在Pivotal Cloud Foundry中运行Spring Cloud Dataflow。我有一个任务应用程序,它是一个Spring Batch作业,我正在使用@ConfigurationProperties来配置批处理作业的参数。

我第一次启动任务时,会传递以下属性:

task launch --name job-truncate --properties "app.job-truncate.truncate.location-id=1, app.job-truncate.truncate.week-end-date=2018-02-01"

批处理作业成功完成。

如果我再次启动相同的任务,但使用不同的属性,例如:

task launch --name job-truncate --properties "app.job-truncate.truncate.location-id=2, app.job-truncate.truncate.week-end-date=2018-01-31"

作业已执行,但应用程序会保留上一次运行的属性。我可以检查云代工厂控制台并验证应用程序的用户提供的env变量是否相同。我在服务器应用程序上做了一些调试,看起来服务器应用程序查找具有相同名称的应用程序,然后发出rest api调用以启动相同的应用程序,忽略任何已更改的属性。

这是预期的行为吗?如果是这样,那么确保在每次运行时刷新属性的最佳方法是什么。

1 个答案:

答案 0 :(得分:0)

对于在CloudFoundry上运行的任务,我们不会修改执行之间的属性。这个想法是那些被设置为Droplet上的环境变量而且不会改变。我们确实修改了执行之间的命令行参数,因此如果要覆盖属性,可以使用命令行参数来执行此操作。