1

I read the documentation that it isn't possible to create a loop in a workflow, but I need to invoke the main method separately each time with the list item - hence need to create a loop.

One solution was to invoke the workflow again using sub-workflow.

Is there any other solution to this? Like using coordinator jobs?

1 Answer 1

1

Some possible 'hack' solutions that i can think of:

  • Create a custom java action as you say, that uses the Oozie Client API to run several workflows (one for each item in your list). you can then either run the items in parallel or serial and poll for success / failure.
  • Another option, similar to the above would be to use some templateing language like Apache Velocity and have your custom action take a template and expand it (generating a workflow xml file on the fly), before again using the Oozie Client API to run this generated workflow.

I like the second option more as you can make a generic solution.

Sign up to request clarification or add additional context in comments.

1 Comment

And what happens when this custom action fails(yarn container was killed for example)? Oozie will try to restart a failed action, but it knows nothing about a custom action's child workflow(which may still be going) and a custom action creates another child workflow, the second one, working in parallel.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.