首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TFS2010构建队列有时有多个InProgress生成,有时没有--逻辑是什么?

TFS2010构建队列有时有多个InProgress生成,有时没有--逻辑是什么?
EN

Stack Overflow用户
提问于 2012-04-20 17:06:34
回答 2查看 1K关注 0票数 2

我的相当大的项目使用门控构建,有一个高度定制的过程模板(XAML)。由于这个问题范围以外的原因,我们的流程只有一个SharedResourceScope,所以多个构建不能并行运行(我知道您应该在代理作用域中这样做,但是我们在中间切换代理,所以用SharedResourceScope包装了所有的东西)。

现在,如果队列中有几个签入,那么所有签入都会进入“在进度”状态,只有一个人在等待SharedResourceScope。这意味着:

  • 人们不知道实际运行的是哪个构建
  • 即使我将一个新的排队签入设置为高优先级,它也不能超过所有正在进行中并等待SharedResourceScope的人,因此整个优先级设置没有什么意义。

我已经使用DefaultProcessTemplate.XAML进行了实验,我发现通常只有一个构建在进行中(虽然偶尔会看到2个构建)。

问题:

  1. 构建何时开始,从而进入“正在进行”模式?是什么阻止所有构建立即启动,并阻塞AgentScope / SharedResourceScope?
  2. 我是否可以在我的XAML中编写一些东西来防止所有的构建都在进行?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-01 11:05:48

当生成控制器具有启动新生成的能力时,生成将启动。因为构建可以使用0到n个代理,所以控制器在构建开始之前不会等待获得代理。控制器根据控制器属性上的“最大并发生成数”设置(代码:MaxConcurrentBuilds)确定其容量。默认设置:“默认为代理数量”。

在XAML中无法控制这种行为。

另外,在TFS2010中有一个关于此的bug,hotfix:KB2567437

票数 2
EN

Stack Overflow用户

发布于 2012-04-24 12:10:27

使用TFS构建扩展,您可以获得许多可以通过流程管理代理控制的活动:QueryBuildAgentStatusIsBuildRunningSetBuildAgentStatus,举几个对您有用的活动。从现在起,它们是完全没有文档记录的,所以您必须进行实验才能让它们运行。但是包中包含了一个有用的帮助文件。

至于“正在进行中”模式,我注意到即使构建正在等待一个自由代理,这也是一种状态;检查这样一个构建的日志,您就会看到。这是相当令人困惑的,我希望MS将添加一个“排队(但不是开始)”模式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10250518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档