【问题标题】:Get if TFS build agent is busy or not获取 TFS 构建代理是否忙
【发布时间】:2018-04-27 16:16:30
【问题描述】:

我想使用 TFS 2015 REST API 来解决代理是否忙。 我试图从代理处获取请求,但似乎只列出了已完成的请求:

http://tfsserver:8080/tfs/_apis/distributedtask/pools/2/jobrequests?agentId=41

我查找了所有可能的 api 调用,但我无法弄清楚,我如何才能知道代理是否正在运行构建。

希望有人能帮帮我。

谢谢!

【问题讨论】:

    标签: rest api tfs


    【解决方案1】:

    只检查响应的latest Request(top first request),如果值中有"result"(如:"result": "succeeded")项,则代理处于空闲状态,否则很忙。

    简而言之:

    • 空闲:

      "result": "succeeded","result": "abandoned","result": "succeededWithIssues",

    • 忙:

      “结果”项

    您可以使用下面的 PowerShell 脚本来识别,如果 Result 为空,则代理 busy

    $serverurl = "http://tfsserver:8080/tfs"
    $poolid = "39"
    $agentid = "147"
    $baseUrl = "$serverurl/_apis/distributedtask/pools/$poolid/jobrequests?agentId=$agentid"            
    $response = (Invoke-RestMethod -Uri $baseUrl -Method Get -UseDefaultCredential).value
    
    $requests = @()
    
    foreach($request in $response){
    
        $customObject = new-object PSObject -property @{
              "RequestId" = $request.requestId
              "Result" = $request.result
              "AgentName" = $request.reservedAgent.name
              "AgentVersion" = $request.reservedAgent.version
              "AgentStatus" = $request.reservedAgent.status
              "BuildDefinitionID" = $request.definition.id
              "BuildDefinitionName" = $request.definition.name
              "BuildID" = $request.owner.id
              "BuildName" = $request.owner.name
            } 
    
        $requests += $customObject      
    }
    
    $requests | Select-Object -first 1 `
                    RequestId,
                    Result, 
                    AgentName,
                    AgentVersion, 
                    AgentStatus,
                    BuildDefinitionID,
                    BuildDefinitionName,
                    BuildID,
                    BuildName
    

    其实最简单的方法是通过门户网站查看agnet状态:

    管理项目(齿轮图标)--> 代理池 --> 选择特定的代理池和代理 --> 检查请求

    【讨论】:

    • 完美!谢谢!
    猜你喜欢
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    相关资源
    最近更新 更多