如何使用API​​获取TFS中已完成构建的队列时间?

时间:2016-02-17 01:41:45

标签: tfs tfs2013

我想检查一下gated check-in build在队列中等待的时间。但是,我找不到API函数来获取此信息。

我该怎么做?

编辑1

请注意,构建可能已经完成。

2 个答案:

答案 0 :(得分:0)

您可以使用IBuildDetailSpec.Status Property,有BuildStatus Enumeration

一旦启动,构建状态将设置为Inprogress。然后,您可以监视构建代理中的时间。减少签入文件的时间,您将获得所需。

答案 1 :(得分:0)

如果"等待时间"现在还没有任何简单的方法可以通过TFS API执行此操作。你提到的意味着从构建排队到开始的时间。

正如您所提到的,您的构建已经完成,因此您可以从IBuildDetail获取构建时间信息,但IBuildDetail仅包含IBuildDetail.StartTime和IBuildDetail.FinishTime。构建队列时间包含在IQueueBuild(IQueueBuild.Queuetime)中。因此,您需要将IBuildDetail转换为字符串,然后搜索" QueueIds"在字符串中获取QueueID。然后你可以通过以下方式获得IQueueBuild:

IQueuedBuild iqb = IBuildServer.GetQueuedBuild(QueueID,QueryOptions.All);

队列时间是iqb.QueueTime。比较IQueueBuild.Queuetime和IBuildDetail.StartTime,你应该得到等待时间。