You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Oozie Coordinator确保同一时间仅运行单个实例?

实现Oozie Coordinator单实例运行的配置方案

当然可以实现!你只需要在coordinator.xml里配置几个关键属性,就能确保你的Coordinator同一时间只会运行一个实例,完全满足“前一个实例完成后再启动下一个”的需求。

核心配置步骤

1. 设置concurrency属性为1

这个属性直接控制Coordinator允许同时运行的最大实例数量,将它设为1就能严格限制同一时间只能有一个实例在执行。

把它添加到coordinator-app下的controls节点中:

<coordinator-app name="your-coordinator-name" 
                 frequency="${coord:minutes(30)}" 
                 start="${start_time}" 
                 end="${end_time}" 
                 timezone="UTC" 
                 xmlns="uri:oozie:coordinator:0.4">
    <controls>
        <!-- 限制并发实例数为1 -->
        <concurrency>1</concurrency>
    </controls>
    
    <!-- 你的dataset、workflow action等其他配置 -->
</coordinator-app>

2. 配合execution属性优化执行顺序(推荐)

execution属性决定了当有多个等待执行的实例时,Coordinator的处理策略,有两个可选值:

  • FIFO:按照调度时间的先后顺序依次执行,完美匹配你“等待前一个完成再启动下一个”的需求
  • LAST_ONLY:只执行最新的等待实例,跳过中间积压的任务(适合不需要处理所有历史调度的场景)

将它和concurrency一起配置:

<controls>
    <concurrency>1</concurrency>
    <execution>FIFO</execution>
</controls>

效果说明

配置完成后,如果某次Workflow执行耗时超过30分钟,到了下一个调度时间点时,Coordinator会检测到当前已有运行中的实例(因为concurrency=1),就会让新的调度实例进入等待队列。直到前一个实例执行完成,队列中的下一个实例才会被启动执行。

内容的提问来源于stack exchange,提问作者Chandan Bhattad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:33:07