Azure Pipelines任务运行代理与并行作业规则咨询
Azure Pipelines 相关问题解答
跨多个Job的Task是否运行在同一个Agent上
默认不会,平台不做跨Job同Agent的调度保证
- Job是Azure Pipelines的独立执行单元,平台调度时会从符合要求的Agent池中分配当前可用的Agent运行Job。哪怕你只有1个Parallel Job额度,多个串行Job也是等前一个Job执行完毕、释放占用的Agent资源后,下一个Job再重新从池子里申请Agent,不会默认绑定前序Job用过的那台机器。
- 只有手动给Job配置了固定Agent调度规则(比如通过
Demand约束指定特定名称的自托管Agent),才可能让多个Job落到同一台Agent上。 - 也因为这个调度逻辑,跨Job传递文件不能直接依赖Agent本地磁盘,必须用
PublishBuildArtifacts/DownloadBuildArtifacts任务或者Pipeline缓存能力中转。
1个Parallel Job的实际定义
你提到的两种理解都是错误的,Parallel Job的计数和单次Pipeline内编写的Job总数没有任何关联
- Parallel Job额度的本质是整个项目/组织范围内,同一时间允许并发运行的Job总数量:
- 持有1个Parallel Job额度,仅代表你同一时间只能跑1个Job。你完全可以在单个Pipeline里定义任意数量的Job,这些Job会自动排队串行执行——前一个Job跑完释放额度,下一个才能启动,不存在“仅支持2个Job”“必须包含2个及以上Job”的限制。
- 举个实际场景:单个Pipeline里定义了5个无依赖的并行Job,如果你只有1个Parallel Job额度,这5个Job会排队逐个执行;如果你有3个Parallel Job额度,就能同时启动3个Job运行,剩余2个排队等额度释放后再启动。
- 免费套餐附带的X分钟时长,是该Parallel Job每月的累计可运行时长上限,和单Pipeline的Job数量、单Job的长度无关,累计运行时长不超过额度即可正常使用。
内容的提问来源于stack exchange,提问作者variable
相关产品推荐
相关产品推荐

