【问题标题】:Scheduling a composed task with arguments使用参数调度组合任务
【发布时间】:2020-05-28 16:11:00
【问题描述】:

我在 Spring Cloud Dataflow 中定义了这两个任务,为了简单起见,我将它们简单地称为 first-tasksecond-task。然后我定义了一个组合任务:

task create --name my-composed-task --definition "first-task && second-task"

现在,我需要安排这个任务,但我需要安排的任务以两个参数开始,假设这些参数是OBJECT_TYPES=1SKIP_EXTRA_STUFF=true。所以我尝试设置我的日程安排:

task schedule create --definitionName my-composed-task --name my-scheduled-task --expression '0 5 4 * ?' --arguments 'OBJECT_TYPES=1 SKIP_EXTRA_STUFF=true'

但是当计划开始时,第二个任务会失败,因为这些参数是强制性的。我还尝试像这样更改计划定义:

task schedule create --definitionName my-composed-task --name my-scheduled-task --expression '0 5 4 * ?' --arguments "--composed-task-arguments='OBJECT_TYPES=1 SKIP_EXTRA_STUFF=true'"

但参数仍然没有跨子任务传递。谁能告诉我这些定义有什么问题?

【问题讨论】:

    标签: spring-cloud-dataflow


    【解决方案1】:

    对于组合任务,您可以使用属性键 --composedTaskArguments 将参数传递给子任务。例如,

    你可以这样做:

    task schedule create --definitionName my-composed-task --name my-scheduled-task --expression '0 5 4 * ?' --arguments "--composedTaskArguments=\"OBJECT_TYPES=1 SKIP_EXTRA_STUFF=true\""
    
    

    另外,请注意--composedTaskArguments 指定的值将传递给所有子任务。将参数传递给组合任务has just been added 的特定子任务的能力也传递给 SCDF。

    【讨论】:

    • 那么...这是否意味着我必须将我的 SCDF 更新到最新版本?
    • 仍然无法正常工作...在日志中我看到参数是这样报告的 ["--composedTaskArguments=OBJECT_TYPES=1;2,SKIP_EXTRA_STUFF=true"] 然后它们没有转发到子任务。
    • 顺便说一句:我正在使用 scheduler-task-launcher 2.4.0 和 SCDF 2.4.0
    • 不确定是否是错误。我在 2.5.1 上试过。您是否可以尝试解决一些问题的 SCDF 2.5.1?
    猜你喜欢
    • 2012-10-06
    • 1970-01-01
    • 2012-06-20
    • 2015-05-02
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    • 2014-04-25
    • 2022-12-17
    相关资源
    最近更新 更多