2015-05-29 1 views
2

У меня есть требование ввести условное выполнение в мой рабочий процесс. Например: если выполняется конкретное условие, то должен выполняться определенный рабочий процесс. Если нет, должен быть выполнен другой рабочий процесс.Azkaban: Условные исполнения в рабочем процессе

С моей точки зрения, в Azkkaban нет прямой функции, которая поддерживает это. Только Оози поддерживает его. Хотелось узнать, как об этом говорят пользователи Azkkaban? Я уверен, что все должны сталкиваться с этим в той или иной форме.

Спасибо, Kranthi

ответ

1

дорожной карты Азкабана говорит, что эта функция есть в их будущей дорожной карты только и, следовательно, это не может быть сконфигурирован так легко. Остается только один вариант: это программно.

Если у кого-то есть лучшие предложения, пожалуйста, дайте мне знать.

спасибо, Kranthi

1

FWIW, мы делаем это в нашем Азкабане проектов, проверяя состояние в сценарии оболочки. Затем скрипт использует API Azkaban для запуска другого рабочего процесса, если условие выполнено.

#!/bin/bash 

# check some condition 
check=`…`; 

if [ ! -z "$check" ]; then 

    # Authenticate ourselves to Azkaban, capturing the session id 
    auth=`curl -k -X POST --data "action=login&username=my_user&password=my_password" https://localhost:8443 | jq '.["session.id"]' | sed -e 's/\"//g'`; 

    # Run the workflow using the Auth session id, capturing the response 
    run=`curl -k --get --data "session.id=$auth" --data 'ajax=executeFlow' --data 'project=my_project' --data "flow=my_flow" https://localhost:8443/executor | jq '.message'`; 

    # If $run response does not contain "successfully" it failed 
    if [[ $run = *successfully* ]]; then 
     echo "'$3': RUN STARTED"; 
    else 
     echo "'$3': RUN ERROR"; 
     exit 1; 
    fi; 

else … 

Необходимо знать, что запущенный рабочий процесс выполняется в его собственном исполнении.

+0

Вы когда-нибудь заглядывали в TriggerPlugin Azkaban? Я искал пример, но ничего не вижу. –

+1

Не уверен, что вы подразумеваете под этим TBH. У меня есть ссылка для меня, чтобы посмотреть? –

+0

Триггерные плагины легко упоминаются в документации Azkaban: http://azkaban.github.io/azkaban/docs/latest/#plugins, но примеров там не так много. Я перешел к исходному коду Azkaban и придумал плагин триггера, который делает что-то очень похожее на то, что закончилось с помощью скрипта bash. https://gist.github.com/feliperazeek/faae2fed6aef780442a4 –

0

Вы можете использовать плагин триггера в Азкабане, чтобы сделать это. Вот пример простой, с которой я столкнулся: https://gist.github.com/feliperazeek/faae2fed6aef780442a4.

Вы можете реализовать свое собственное выполнение условий.

+1

Хорошая работа над этим плагином. :) –

+1

Спасибо, я напишу сообщение в блоге об этом, так как документация по этому вопросу не велика. –

+0

@ felipe-oliviera просто интересно, опубликовано ли это сообщение в блоге ... – ggalmazor