我想知道是否有可能/如何强制协调员定期实现或实例化工作流,即使先前的实例化工作流尚未完成。
让我解释一下: 我有一个简单的协调员看起来像这样:
<coordinator-app name="myApp" frequency="${coord:hours(3)}" start="2015-01-01T0:00Z" end="2016-01-01T00:00Z" timezone="UTC" xmlns="uri:oozie:coordinator:0.4">
<action>
<workflow>
<app-path>${myPath}/workflow.xml</app-path>
</workflow>
</action>
</coordinator-app>
频率设置为3小时。每3个小时,我希望协调员能够实现&#34;新的工作流实例/作业。
这是我的问题:当工作流程执行持续时间超过3小时时,协调员不会实现新的工作流程实例,而是等待当前正在运行的工作流程先完成。然后它将实例化下一个工作流程。协调员发起的工作流程如果持续时间超过频率则会排队。
如何协调员每3小时开始一项新工作,无论如何? 谢谢
答案 0 :(得分:2)
您应该使用concurrency
属性。默认情况下它是一个,这就是排队问题的原因。设置它与您认为合理的一样大。
<coordinator-app name="[NAME]" frequency="[FREQUENCY]"
start="[DATETIME]" end="[DATETIME]" timezone="[TIMEZONE]"
xmlns="uri:oozie:coordinator:0.1">
<controls>
<concurrency>[CONCURRENCY]</concurrency>
</controls>
来自docs:
并发:协调器作业可以指定协调器操作的并发性,即协调器引擎启动限制之前允许并发运行的协调器操作数(RUNNING状态)。