我在Oozie中使用fork/join,以便并行一些子工作流操作.我的workflow.xml如下所示:
<workflow-app name="myName" xmlns="uri:oozie:workflow:0.5"
<start to="fork1"/>
<kill name="Kill">
<message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<fork name="fork1">
<path start="subworkflow1"/>
<path start="subworkflow2"/>
</fork>
<join name="Completed" to="End"
<action name="subworkflow1">
<sub-workflow>
<app-path>....</app-path>
<propagate-configuration/>
<configuration>
<property>
<name>....</name>
<value>....</value>
</property>
</configuration>
</sub-workflow>
<ok to="Completed"/>
<error to="Completed"/>
</action>
<action name="subworkflow2">
<sub-workflow>
<app-path>....</app-path>
<propagate-configuration/>
<configuration>
<property>
<name>....</name>
<value>....</value>
</property>
</configuration>
</sub-workflow>
<ok to="Completed"/>
<error to="Completed"/>
</action>
<end name="End"></workflow-app>
Run Code Online (Sandbox Code Playgroud)
当subworkflow1被杀死时(由于某种原因失败),它也会杀死subworkflow2.我希望这两个动作是平行的,但不依赖.
在我的工作流程中,当workflow1被杀死时,我看到workflow2也被杀死了,但我的应用程序成功了(我在Oozie仪表板上检查它 - > HUE中的工作流程).
在这种情况下,我希望subworkflow1将被杀死,subworkflow2将成功,我真的不关心我的整个应用程序会说什么.
我应该怎么做才能使每个路径获得它自己的状态并继续运行,即使同一个fork中的其他路径被杀死了?