Oozie:工作流:如何获得最后一次成功的动作

Oozie: workflow: How to get the last successful action

如果我的 oozie 工作流程中的任何操作失败,我将尝试发送电子邮件提醒。如何获取失败的操作或有什么方法可以在工作流 DAG 中查看最后一个成功的操作名称?

没有直接的方法获取最后一个 "successful" 动作 AFAIK。如果您在特定上下文之外考虑一下:考虑到 fork/join、控制节点等,定义 "success" 并不容易。

但是,一旦定义了条件,我想可以使用 Oozie 的 REST API 找到最后一个 "successful" 节点。例如,工作流的响应($OOZIE_URL/v1/job/job_id?show=info)returns 工作流中的操作列表。动作与"transition"字段链接:最后一个动作的转换为空,其他节点的转换是他们的下游节点等

祝你好运,让我们知道它是否有效。

how to get which action got failed

wf:lastErrorNode()

在以下 Oozie-workflow 示例片段中,上述函数用于获取最后一个失败操作的错误消息:

<kill name="fail">
    <message>Action failed, error message: ${wf:errorMessage(wf:lastErrorNode())}</message>
</kill>

我不知道有什么方法可以得到 "last successful action name."

有关此类函数的更多信息,请参阅 Oozie Workflow 文档的 Workflow EL functions section