2014-12-04 7 views

ответ

0

Я не думаю, что такая переменная доступна. Но при необходимости вы можете сделать это с помощью действия оболочки. Во время запуска рабочего процесса запустите запуск сценария оболочки и сохраните его в переменной. Во время рабочего процесса просто закончите, прежде чем действие электронной почты будет иметь другой сценарий оболочки, который будет вычислять текущее время - время начала и использовать его в вашем письме. Но это делает ваш рабочий процесс грязным

+0

Я подумал об этом, но надеялся на более чистое решение. Интересно, что интерфейс Hue способен показывать продолжительность; таким образом, я предполагаю, что это должно быть где-то в журналах. – Pasha

0

Это замечательный недостаток Оози. Каждый из наших рабочих процессов начинается с действия оболочки, которое вызывает простой скрипт bash для получения метки времени.

<action name="start-time"> 
    <shell xmlns="uri:oozie:shell-action:0.1"> 
    <job-tracker>${jobTracker}</job-tracker> 
    <name-node>${nameNode}</name-node> 
    <exec>utc-time.sh</exec> 
    <file>../common/utc-time.sh#utc-time.sh</file> 
    <capture-output/> 
    </shell> 
    <ok to="the-first-actual-action"/> 
    <error to="fail"/> 
</action> 

И это проверяемая с Java EL в электронной почте мы отправляем по завершению, ошибки, например, так:

<action name="email"> 
    <email xmlns="uri:oozie:email-action:0.1"> 
    <to>${emailsToAlert}</to> 
    <subject>COMPLETED: ${wf:name()}</subject> 
    <body> 
     Workflow ID: ${wf:id()} 
     Workflow Name: ${wf:name()} 
     Workflow app path: ${wf:appPath()} 
     Start Time: ${wf:actionData('start-time')['time']} 
     End Time: ${timestamp()} 
    </body> 
    </email> 
    <ok to="end"/> 
    <error to="fail"/> 
</action> 

Получения длительности еще один прыжок-через-хуп упражнения с пропусканием начала и конца время для сценария bash.

Я изучал Oozie SLA functionality, но я не нашел способ извлечь данные.

Смежные вопросы