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

如何让Azure DevOps Pipeline的each迭代任务按顺序或分批并行执行?

Azure Pipeline 动态任务的串行执行与并行数量控制

一、让任务按顺序串行运行

在原有动态任务生成逻辑中,给每个任务添加依赖关系,让后一个任务必须等待前一个任务完成后再启动:

variables:
  - name: fruitList
    value: mango,peach
stages:
  - stage: Dev
    jobs:
      - ${{ each fruitName in split(variables.fruitList, ',') }}:
          - job: "HELLO_${{ fruitName }}"
            # 除第一个任务外,其余任务依赖前一个任务
            ${{ if ne(index(split(variables.fruitList, ','), fruitName), 0) }}:
              dependsOn: "HELLO_${{ split(variables.fruitList, ',')[index(split(variables.fruitList, ','), fruitName) - 1] }}"
            steps:
              - task: AzureCLI@2
                displayName: "Step dynamic ${{ fruitName }}"
                inputs:
                  scriptType: "bash"
                  scriptLocation: "inlineScript"
                  inlineScript: |
                    set -xe    
                    set -o nounset    
                    echo "${{ fruitName }}"

原理:通过index函数获取当前水果在列表中的位置,第一个任务不设置依赖,后续每个任务都依赖列表中前一个水果对应的任务,从而实现串行执行。

二、控制最大并行任务数量(更优方案)

推荐使用Matrix 策略生成动态任务,通过maxParallel参数直接控制同时运行的最大任务数,这种方式比手动设置依赖更简洁:

variables:
  - name: fruitList
    value: mango,peach
stages:
  - stage: Dev
    jobs:
      - job: HelloFruits
        strategy:
          matrix:
            # 遍历水果列表生成矩阵项
            ${{ each fruitName in split(variables.fruitList, ',') }}:
              ${{ fruitName }}:
                fruitName: ${{ fruitName }}
          # 设置最大并行任务数,例如设为1则串行,设为2则最多2个任务同时运行
          maxParallel: 2
        steps:
          - task: AzureCLI@2
            displayName: "Step dynamic $(fruitName)"
            inputs:
              scriptType: "bash"
              scriptLocation: "inlineScript"
              inlineScript: |
                set -xe    
                set -o nounset    
                echo "$(fruitName)"

原理:Matrix 策略会自动为每个水果生成独立的任务实例,maxParallel参数直接限制并行运行的任务数量,无需手动管理依赖,适合批量任务的并行度控制。

内容的提问来源于stack exchange,提问作者Joost Döbken

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 13:23:20