gpt4 book ai didi

java - Spring Batch 决策者没有重复

转载 作者:行者123 更新时间:2023-12-01 22:36:13 25 4
gpt4 key购买 nike

我有一个用户输入的情况,我们将其称为“运行模式”。输入可以有 3 种可能的状态:STATE1、STATE2、STATE1_AND_STATE2。实现的逻辑如下:如果设置了 STATE1,则应执行步骤 A;如果设置了 STATE2,则应执行步骤 B;最后,如果设置了 STATE1_AND_STATE2,则应并行运行步骤 A 和步骤 B。

我知道如何以这样丑陋的方式解决这个问题:

<batch:decision id="makeWorkFlowDecision" decider="myDecider"> 
<batch:next on="STATE1" to="stepA" />
<batch:next on="STATE2" to="stepB" />
<batch:next on="STATE1_AND_STATE2" to="stepC" />
</batch:decision>

<batch:split id="stepA" task-executor="taskExecutor">
<!-- content of stepA -->
</batch:split>
<batch:split id="stepB" task-executor="taskExecutor">
<!-- content of stepB -->
</batch:split>

<batch:split id="stepC" task-executor="taskExecutor">
<!-- content of stepA -->
<!-- content of stepB -->
</batch:split>

就像您可以看到步骤C 中存在重复。我重复stepA和stepB的内容。另外据我所知,在步骤C中,步骤A和步骤B不会并行运行。步骤A和步骤B的内容由2个流程 block 组成,每个流程 block 中我定义了步骤。有没有办法在 stepA 上设置条件 next ?

最佳答案

下面是 Luca 所描述的示例:

<flow id="flowA">
<!-- stepA related steps here -->
</flow>

<flow id="flowB">
<!-- stepB related steps here -->
</flow>

<batch:split id="stepA" task-executor="taskExecutor">
<flow parent="flowA"/>
</batch:split>
<batch:split id="stepB" task-executor="taskExecutor">
<flow parent="flowB"/>
</batch:split>

<batch:split id="stepC" task-executor="taskExecutor">
<flow ref="flowA"/>
<flow ref="flowB"/>
</batch:split>

关于java - Spring Batch 决策者没有重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26838555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com