Podczas pracy w Jenkins możesz napotkać niektóre zadania, które zajmują dużo czasu, co prowadzi do intensywnego wykorzystania zasobów i wpływu wydajności na serwer.
Jednak Jenkins pozwala nam ustawić limit czasu kompilacji, aby określić, jak długo należy uruchomić kompilację, zanim zostanie automatycznie zakończona. W takim przypadku limit czasu kompilacji jest przydatny, gdy masz długotrwałe kompilacje, które z jakiegoś powodu mogą utknąć lub zamrozić.
W tym samouczku zanotujemy, jak skonfigurować limit czasu kompilacji w Jenkins.
Przykładowy rurociąg
Aby najlepiej zilustrować, kiedy i jak korzystać z opcji limitu czasu w Jenkins, weźmy przykładowy rurociąg, jak pokazano poniżej:
rurociąg
agent dowolny
Etapy
etap („wejście”)
kroki
skrypt
def userInput = Wejście komunikat: „Wprowadź wartość:”, Parametry: [String (DefaultValue: „Wartość domyślna”, Opis: „Wprowadź wartość”, name: 'inputValue')]]]]]
echo „Wejście użytkownika: $ userInput”
W tym przypadku rurociąg ma jeden etap o nazwie „Wejście„, Który zawiera pojedynczy krok, który skłania użytkownika do wprowadzania.
„„wejście”Krok wyświetla wiadomość dla użytkownika i czeka na wprowadzenie wartości użytkownika. Wartość, którą wprowadza użytkownik, jest przechowywana w „UserInput" zmienny. Na koniec drukujemy komunikat wejściowy do konsoli za pomocą polecenia Echo.
Po skonfigurowaniu zbuduj rurociąg i zobacz, co się stanie.
Jeśli nie dostarczymy danych wejściowych w powyższym rurociągu, rurociąg będzie czekał w nieskończoność, aby wprowadzić wartość. To dlatego, że „wejście„Krok jest blokowany, co oznacza, że rurociąg nie będzie kontynuował następnego kroku, dopóki użytkownik nie dostarczy danych wejściowych.
Aby to pokonać, możemy skonfigurować wartość limitu czasu, która automatycznie zakończy kompilację po danym czasie trwania.
Przykładowy skrypt pokazuje, w jaki sposób możemy użyć funkcji limitu czasu Jenkins, aby zakończyć kompilację po 10 sekundach.
rurociąg
agent dowolny
Etapy
etap („wejście”)
kroki
limit czasu (czas: 10, jednostka: „sekundy”)
skrypt
def userInput = Wejście komunikat: „Wprowadź wartość:”, Parametry: [String (DefaultValue: „Wartość domyślna”, Opis: „Wprowadź wartość”, name: 'inputValue')]]]]]
echo „Wejście użytkownika: $ userInput”
„„koniec czasu”Krok pozwoli„ „wejście”Krok do pracy przez 10 sekund przed wyczerpaniem czasu. Jeśli użytkownik nie podaje danych wejściowych w określonym czasie, zakończ kompilację lub przejdź do następnego kroku.
Jenkins zmusi kompilację do zakończenia, nawet jeśli pojawią się zagnieżdżone działania po upływie limitu czasu.
Wniosek
W tym artykule dowiedzieliśmy się o funkcji limitu czasu Jenkinsa i o tym. Widzieliśmy, jak ustawić limit czasu kompilacji za pomocą „koniec czasu„Polecenie w skrypcie kompilacji.
Ogólnie rzecz biorąc, funkcja limitu czasu Jenkins jest cennym narzędziem do zapobiegania długotrwałym kompilacji utknięcia lub zamrażania i zapewnienia, że kompilacje nie konsumują nadmiernych zasobów. Może to pomóc w zapewnieniu, że instancja Jenkins działa płynnie i wydajnie.