如何检查哈德森是否忙碌?

时间:2011-07-11 12:08:55

标签: java hudson jenkins

如何判断哈德森是否忙碌?意思是我想检查它当前是否正在执行任何构建。

目前正在使用以下内容:

    if(lastBuild == lastCompletedBuild){
        // hudson is free
    }
    else{
      //hudson is busy
   }

这是正确的逻辑吗?如果机器在上次构建更新后重新启动/崩溃并且lastCompletedbuild不是?

,该怎么办?

是否有任何可以直接使用的API?

4 个答案:

答案 0 :(得分:8)

如果您想查看构建队列中当前有哪些项目,可以向http://your.hudson.server/hudson/queue/api/[xml|json]发出请求。

答案 1 :(得分:2)

请看Hudson's API

具体来说:您可以将/api/[xml|json]添加到Hudson中的任何路径,以获取该页面的机器可读数据。例如,hudsonserver:8080/api/xml将返回作业列表及其当前状态。

但是,真正的问题是我执行的代码在哪里?上面,您有lastBuildlastCompletedBuild,但这些变量在哪里设置?

答案 2 :(得分:2)

您可以尝试查询separate API处提供的加载统计信息

<overallLoadStatistics>
  <busyExecutors></busyExecutors>
  <queueLength></queueLength>
  <totalExecutors></totalExecutors>
  <totalQueueLength></totalQueueLength>
</overallLoadStatistics>

答案 3 :(得分:2)

您是否对目前正在建设的特定工作感兴趣?在那种情况下:

http://[hudson-host-and-path]/job/[job-name]/lastBuild/api/xml
如果正在进行构建,则

将代码<building>设置为 true