我阅读了文档,说明不可能在工作流中创建循环,但是每次需要使用列表项分别调用main方法-因此需要创建循环。一种解决方案是使用子工作流再次调用工作流。有没有别的解决办法?比如使用协调工?
6yt4nkrj1#
我能想到的一些可能的“黑客”解决方案:如您所说,创建一个自定义java操作,该操作使用oozie客户机api来运行多个工作流(列表中的每个项目对应一个工作流)。然后可以并行或串行运行这些项,并轮询成功/失败。与上述类似的另一种选择是使用一些模板化语言,如apachevelocity,让您的自定义操作获取模板并展开它(动态生成工作流xml文件),然后再次使用oozie客户端api运行生成的工作流。我更喜欢第二种选择,因为你可以做一个通用的解决方案。
1条答案
按热度按时间6yt4nkrj1#
我能想到的一些可能的“黑客”解决方案:
如您所说,创建一个自定义java操作,该操作使用oozie客户机api来运行多个工作流(列表中的每个项目对应一个工作流)。然后可以并行或串行运行这些项,并轮询成功/失败。
与上述类似的另一种选择是使用一些模板化语言,如apachevelocity,让您的自定义操作获取模板并展开它(动态生成工作流xml文件),然后再次使用oozie客户端api运行生成的工作流。
我更喜欢第二种选择,因为你可以做一个通用的解决方案。