如何判断哈德森是否忙碌?意思是我想检查它当前是否正在执行任何构建。
目前正在使用以下内容:
if(lastBuild == lastCompletedBuild){
// hudson is free
}
else{
//hudson is busy
}
这是正确的逻辑吗?如果机器在上次构建更新后重新启动/崩溃并且lastCompletedbuild不是?
,该怎么办?是否有任何可以直接使用的API?
答案 0 :(得分:8)
如果您想查看构建队列中当前有哪些项目,可以向http://your.hudson.server/hudson/queue/api/[xml|json]
发出请求。
答案 1 :(得分:2)
请看Hudson's API。
具体来说:您可以将/api/[xml|json]
添加到Hudson中的任何路径,以获取该页面的机器可读数据。例如,hudsonserver:8080/api/xml
将返回作业列表及其当前状态。
但是,真正的问题是我执行的代码在哪里?上面,您有lastBuild
和lastCompletedBuild
,但这些变量在哪里设置?
答案 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 。