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 для получения дополнительной информации о таких функциях.

Другие вопросы по тегам