2011-07-11 18 views
6

Jak sprawdzić, czy hudson jest zajęty, czy nie? Czyli chcę sprawdzić, czy aktualnie wykonuje jakąkolwiek kompilację, czy nie.
jak sprawdzić, czy hudson jest zajęty, czy nie?

Obecnie używam następujące rzeczy:

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

czy jest to poprawna logika? Co się stanie, jeśli urządzenie uruchomi się ponownie/ulegnie awarii po zaktualizowaniu ostatniej wersji, a lastCompletedbuild nie jest?

Czy ujawniono jakiekolwiek API, z którego można bezpośrednio korzystać?

+1

Musisz dodać więcej odpowiednich tagów. Nie wiem nawet, czym jest Hudson, jeśli ma to coś wspólnego z Javą, dodaj tag java do swojego postu. Ludzie nie znajdą Twojego posta bez odpowiednich tagów. – Caimen

+0

@Caimen: Sprawdź hudson @ http://hudson-ci.org/ – akshay

+1

Zakładam, że piszesz kod java, więc dodaję tag java do twojego postu. Jednak tylko dlatego, że próbujesz wykryć status Hudona, nie musi oznaczać, że piszesz java. Szczegóły ... potrzebujemy ich. – Caimen

Odpowiedz

2

Spójrz na Hudson's API.

W szczególności: Możesz dodać do dowolnej ścieżki w Hudson, aby uzyskać dane do odczytu maszynowego tej strony. Na przykład hudsonserver:8080/api/xml zwróci listę zadań i ich bieżące statusy.

Jednak prawdziwe pytanie: gdzie jest ten kod? Powyżej masz lastBuild i lastCompletedBuild, ale gdzie te zmienne zostały ustawione?

+0

I uzyskaj wartości poprzez wywołanie api: http://hudson.server.com/job/myjobname/api/xml i wartości użytkowe tagu lastBuild i lastCompletedBuild – akshay

8

Jeśli chcesz sprawdzić, jakie elementy są aktualnie w kolejce kompilacji, możesz wysłać zapytanie pod numer http://your.hudson.server/hudson/queue/api/[xml|json].

2

Można spróbować kwerendy obciążenia Statystyki dostępny w separate API:

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

Czy jesteś zainteresowany tym, czy konkretna praca buduje obecnie? W tym przypadku:

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

ma tag <building> zestaw do prawdziwej jeżeli budowa jest obecnie dzieje.

Powiązane problemy