如何使用 Stream 为 Spring Cloud Dataflow 中的子任务设置全局属性 - Task-Launcher-Dataflow

Posted

技术标签:

【中文标题】如何使用 Stream 为 Spring Cloud Dataflow 中的子任务设置全局属性 - Task-Launcher-Dataflow【英文标题】:How do you set global properties for child tasks in Spring Cloud Dataflow using Stream - Task-Launcher-Dataflow 【发布时间】:2021-10-11 16:54:25 【问题描述】:

我有一个带有 Http 源、自定义处理器和 Task-Launcher-Dataflow 的流

我有一个从流中调用的组合任务 - task-launcher-dataflow

我将流处理器中的几个属性传递给 task-launcher-dataflow 和子任务,例如...

deploymentProps":"app.composedtask-filecopy2.prescript.scriptFile":"/source/prescript.sh"

这工作正常,但我已达到最大字符限制,并且在组合任务 pod 上出现 sql 异常,说明我已超过 2500 个字符限制。我想为所有任务而不是单独设置属性以节省字符空间,但使用通配符不起作用

deploymentProps":"app.composedtask-filecopy2.prescript.*":"/source/prescript.sh"

有没有办法为所有任务设置属性,而不必单独设置它们?

我尝试在 kubernetes 的 Spring-Cloud-Dataflow-Server configmap 中设置这些,特别是针对 imagePullPolicy,但到目前为止这还没有奏效。

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

如果您使用的是 SCDF 2.8.x,您可以尝试以下部署器属性。:deployer.*.kubernetes.image-pull-policy=Always

【讨论】:

谢谢格伦,这似乎有效! 第二次看这不起作用,我在 SCDF 中发现的一件奇怪的事情是,如果您使用参数/属性手动运行任务,它将保留这些属性(在数据库中)并使用他们在未来的处决。我们发现这一点的方法是在创建新的 scdf 数据库时,那些全局 * 属性不再起作用,必须返回为每个子任务单独设置它们。

以上是关于如何使用 Stream 为 Spring Cloud Dataflow 中的子任务设置全局属性 - Task-Launcher-Dataflow的主要内容,如果未能解决你的问题,请参考以下文章

处理 JPA 规范和 spring-data-jpa 时如何使用声明 Stream 作为返回类型

Spring Cloud 系列之 Stream 消息驱动

@MessagingGateway 如何配置 Spring Cloud Stream MessageChannels?

如何构建 Spring Cloud Stream JMS ActiveMQ

Spring Cloud Stream 验证

如何使用 Spring Cloud Stream Kafka 和每个服务的数据库实现微服务事件驱动架构