如果协调器操作失败,如何暂停 Oozie 协调器?
How to suspend Oozie coordinator if a coordinator action fails?
在我的用例中,下一次迭代使用协调器操作的输出,因此如果其中一个失败,unfinished/corrupted 数据将被送入下一个协调器操作。
如果协调器操作中的工作流步骤之一失败,是否有任何方法可以暂停 Oozie 协调器?
例如代替:
<action name="Delete_TMP_Files">
<fs>
<delete path='${outputPath}*'/>
</fs>
<ok to="End"/>
<error to="Kill"/>
</action>
我们可以这样做吗:
<action name="Delete_TMP_Files">
<fs>
<delete path='${outputPath}*'/>
</fs>
<ok to="End"/>
<error to="Suspend"/>
</action>
所以可以在其输出被下一个协调器操作覆盖之前诊断出错误?
PS: fs>delete 不是这里的实际用例,只是一个例子。
您不能基于工作流失败(来自协调器操作)暂停协调器。
如果工作流的输出具有特定模式,那么您可以使用它并在工作流开始时检查它。
否则,您始终可以 touch
将文件作为工作流中的最后一个操作,无论何时成功,如果失败,则删除(如果是同一文件,不基于日期)。使用与工作流程中的第一次检查相同的文件并相应地进行。最初,您可能需要手动创建文件。
如果失败,您可以使用电子邮件操作并得到通知。
这只是解决方法。
在我的用例中,下一次迭代使用协调器操作的输出,因此如果其中一个失败,unfinished/corrupted 数据将被送入下一个协调器操作。
如果协调器操作中的工作流步骤之一失败,是否有任何方法可以暂停 Oozie 协调器?
例如代替:
<action name="Delete_TMP_Files">
<fs>
<delete path='${outputPath}*'/>
</fs>
<ok to="End"/>
<error to="Kill"/>
</action>
我们可以这样做吗:
<action name="Delete_TMP_Files">
<fs>
<delete path='${outputPath}*'/>
</fs>
<ok to="End"/>
<error to="Suspend"/>
</action>
所以可以在其输出被下一个协调器操作覆盖之前诊断出错误?
PS: fs>delete 不是这里的实际用例,只是一个例子。
您不能基于工作流失败(来自协调器操作)暂停协调器。
如果工作流的输出具有特定模式,那么您可以使用它并在工作流开始时检查它。
否则,您始终可以 touch
将文件作为工作流中的最后一个操作,无论何时成功,如果失败,则删除(如果是同一文件,不基于日期)。使用与工作流程中的第一次检查相同的文件并相应地进行。最初,您可能需要手动创建文件。
如果失败,您可以使用电子邮件操作并得到通知。
这只是解决方法。