2011-07-11 55 views
6

如何檢查哈德森是否忙?含義我想檢查它當前是否執行任何構建或不。
如何檢查哈德森是否忙?

目前正在使用以下的事情:

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

這是一個正確的邏輯是什麼?如果在上次構建更新並且lastCompletedbuild不是?後機器重新啓動/崩潰?

有任何暴露的API,它可以直接使用?

+1

您需要添加更多相關標籤。我甚至不知道哈德森是什麼,如果它與Java有關,那麼將java標籤添加到您的文章中。沒有相關標籤的用戶將無法找到您的信息。 – Caimen

+0

@Caimen:退房哈德森@ http://hudson-ci.org/ – akshay

+1

我假設你正在編寫Java代碼,所以我添加Java代碼到您的文章。然而,僅僅因爲你試圖檢測Hudon的狀態並不一定意味着你正在編寫java。細節...我們需要他們。 – Caimen

回答

2

Hudson's API

具體做法是:你可以在哈德森添加任何路徑來獲取頁面的機器可讀數據。例如hudsonserver:8080/api/xml將返回作業列表及其當前狀態。

然而,真正的問題,我這是哪裏的代碼被執行?以上,你有lastBuildlastCompletedBuild,但是這些變量是從哪裏設定的?

+0

I通過調用api來獲取值:http://hudson.server.com/job/myjobname/api/xml以及標記lastBuild&lastCompletedBuild的值 – akshay

8

如果你想看到的是目前在構建隊列什麼物品,就可以使http://your.hudson.server/hudson/queue/api/[xml|json]的請求。

2

你可以嘗試查詢負荷統計可在separate API

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

您是否有興趣在一個特定的作業是否目前正在建設?在這種情況下:

http://[hudson-host-and-path]/job/[job-name]/lastBuild/api/xml 

有標籤<building>設置爲真正如果構建正在發生的事情。