Oozie: workflow: как получить последнее успешное действие
Я пытаюсь отправить уведомление по электронной почте, если какое-либо действие в моем рабочем процессе не удается. Как узнать, какое действие не удалось или есть ли способ увидеть последнее успешное имя действия в DAG рабочего процесса?
2 ответа
Нет прямого способа получить последнее "успешное" действие AFAIK. Если вы думаете об этом вне определенного контекста на мгновение: определить "успех" непросто, учитывая разветвление / соединение, управляющие узлы и т. Д.
Однако, как только критерии определены, я думаю, что можно найти последний "успешный" узел, используя REST API Oozie. Например, ответ рабочего процесса ($OOZIE_URL/v1/job/job_id? Show=info) возвращает список действий в рабочем процессе. Действия связаны с полем "переход": переход последнего действия равен нулю, переход других узлов - их нисходящий узел и т. Д.
Удачи и дайте нам знать, если это работает.
как получить, какое действие не удалось
wf:lastErrorNode()
В следующем фрагменте примера рабочего процесса Oozie вышеупомянутая функция используется для получения сообщения об ошибке последнего неудачного действия:
<kill name="fail">
<message>Action failed, error message: ${wf:errorMessage(wf:lastErrorNode())}</message>
</kill>
Я не знаю ни одного способа получить "последнее успешное имя действия".
Посмотрите раздел функций Workflow EL в документации по Oozie Workflow для получения дополнительной информации о таких функциях.