另一个选项类似于上述,它将使用一些模板化语言,如Apache Velocity,并具有您的自定义动作需要一个模板并将其展开(在运行中生成工作流xml文件),然后再次使用Oozie Client API运行此生成的工作流程。 b 我更喜欢第二个选项,因为您可以制作一个通用解决方案。
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?
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.