【问题标题】:Spring Cloud Dataflow - Parallel TasksSpring Cloud Dataflow - 并行任务
【发布时间】:2021-08-03 17:28:37
【问题描述】:

我有大约 16 个并行配置的任务,例如 <AAA && BBB|| CCC && DDD || EEE && FFF || GGG && ......>

我的意图是一次只运行 3 个任务。只要保持顺序任务的顺序,我不介意哪些任务先运行(BBB 总是在 AAA 之后运行,DDD 在 CCC 之后等)

根据此处的文档 - https://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/#_configuration_options,我尝试设置 --split-thread-core-pool-size=3,但它给了我这个错误 -

Split thread core pool size 3 should be equal or greater than the depth of split flows 17. Try setting the composed task property splitThreadCorePoolSize

我在这里做什么?

【问题讨论】:

    标签: spring spring-batch spring-cloud-dataflow spring-cloud-task


    【解决方案1】:

    Spring Cloud Dataflow 的 Composed Task Runner 在幕后使用 Spring Batch。而且 Spring Batch 处理流中嵌套拆分的方式也不是很理想:

    这就是为什么如果需要严格控制并发限制,应该避免嵌套拆分。

    在你的情况下应该是可能的:使用

    <AAA && BBB || CCC && DDD || EEE && FFF>
    

    --split-thread-core-pool-size=2,它按预期工作。但是随着

    <<AAA && BBB> || <CCC && DDD> || <EEE && FFF>>
    

    您应该得到线程核心池大小必须至少为 4 的消息。

    在您的问题中,您以上面的形式陈述了流程。请确保您确实在该表格中输入了它。如果您以较低的形式输入它,SCDF 仍将在许多(但不是全部)位置显示较高的形式。已启动的组合任务的任务执行视图中的图形属性应显示完整定义。

    【讨论】:

    • 是的!就是这样!我使用了第二个 DSL,这就是导致问题的原因。
    猜你喜欢
    • 1970-01-01
    • 2018-01-27
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多