我正在尝试一个基于变量的工作流,要么运行完整的fork-join,要么只运行单个操作。我收到一个错误,说没有供join配对的fork。这是否受支持?这就是我正在做的事情:
<start to="path_decision"/>
<decision name="path_decision">
<switch>
<case to="fork-join-path">${some_var eq "foo"}</case>
<default to="node1"/>
<switch/>
<decision>
<fork name="fork-join-path>
<path start="node1"/>
<path start="node2"/>
</fork>
<action name="node1">
<ok to="path_end_decision"/>
</action>
<action name="node2">
<ok to="path_end_decision"/>
</action>
<decision name="path_end_decision">
<switch>
<case to="join_end>${some_var eq "foo"}</case>
<default to="normal_end"/>
</switch>
</decision>
<join name="join_end to="normal_end">
<action name="normal_end">
...clean up
</action>发布于 2020-03-19 23:14:05
在您的示例中,以下路径看起来是有效的:
start->path_decision->fork-join-path->node1->path_end_decision->normal_end
在这个路径中,你有一个fork,但是你没有一个join,这是不好的。Oozie的forkjoin验证器会发现这一点并给出一个错误。它不会识别您向path_decision和path_end_decision添加了相同的条件。
我将使用node1和node2作为分支路径。在这种情况下,您不需要path_end_decision节点,只需直接从node1和node2转到join_end即可。对于非加入路径,我将从path_decision转到一个新的node3,然后从那里转到normal_end。
您在join_end上也有一个丢失的",但我希望这只是一个打字错误。
https://stackoverflow.com/questions/60744433
复制相似问题