oozie workflow Откатить действие при убийстве
Я пытался вызвать действие, когда действие в oozie не удается
Я могу сделать это, используя ошибку для узла, как показано ниже
<ok to="end"/>
<error to="kill"/>
Это будет прекрасно работать, если мое требование - сделать откат, если текущее действие не выполнено в oozie.
То, что я искал, - это запуск шага в случае, если рабочий процесс убит (если кто-то идет в рабочий процесс и нажимает кнопку уничтожения в HUE.)
Я мог видеть узел с именем kill, который генерируется в workflow.xml, когда я использую oozie через HUE. Я пытался поместить свое настраиваемое действие в это пространство, но каждый раз, когда я сохраняю xml, рабочий процесс получает значение по умолчанию, как показано ниже
<kill name="kill">
<message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
Есть ли способ выполнить какое-то действие (Some Kind of roll backing), когда рабочий процесс oozie убит?
Есть ли способ захватить действие Kill и запустить другой рабочий процесс? Я просмотрел документацию о сумасшедшем, но безуспешно.
Очень ценю вашу помощь по этому вопросу.
1 ответ
Атрибут name в узле kill - это имя узла действия Kill. Содержимое элемента сообщения будет зарегистрировано как причина уничтожения для задания рабочего процесса. Узел kill не имеет элементов перехода, потому что он завершает задание рабочего процесса, как KILLED .
Итак, вы пытались вызвать действие отката, упоминая то же самое в "ошибке", вместо вызова kill. что-то вроде
<ok to="end"/>
<error to="rollBack_action"/>
и впоследствии упоминание о "rollBack_Action" в некотором роде
<action name='rollBack_action'>
<java>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<arg>action_roll_back</arg>
</java>
<ok to="end"/>
</action>