FWIW, we do this in our Azkaban projects by checking a condition in a shell script. The script then uses the Azkaban API to trigger another workflow if the condition is met.
#!/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 …
You need to be aware that the triggered workflow runs in it's own execution.