Jak zaplanować pracę w Jenkins?
Dodałem nową pracę w Jenkins, którą chcę zaplanować okresowo.
Z Configure job zaznaczam pole wyboru "Build Periodycly" i w polu tekstowym Schedule dodałem wyrażenie:
15 13 * * *
Ale nie działa w zaplanowanym czasie.
Czy to właściwa procedura, aby zaplanować pracę?
Praca powinna być uruchomiona o 4: 20 rano, ale nie jest uruchomiona.
7 answers
Ustawiając terminarz na 15 13 * * *
każesz Jenkinsowi zaplanować budowę każdego dnia każdego miesiąca każdego roku w piętnastej minucie trzynastej godziny dnia.
Jenkins użył wyrażenia cron , a poszczególne pola to:
- minut minut w jedną godzinę (0-59)
- godziny godzin w jeden dzień (0-23)
- DAYMONTH Day in a month (1-31)
- miesiąc miesiąc w roku (1-12)
- dzień tygodnia (0-7) gdzie 0 i 7 to niedziela
Jeśli chcesz zaplanować swoją budowę co 5 minut, to wykonasz zadanie: */5 * * * *
0 8 * * *
Dla kilku ostatnich wersji (2014), Jenkins ma nowy parametr, H
(wyciąg z dokumentacji kodu Jenkinsa):
Aby okresowo zaplanowane zadania mogły generować równomierne obciążenie systemu, należy użyć symbolu
H
(dla "hash") o ile to możliwe.Na przykład użycie
0 0 * * *
dla kilkunastu codziennych zadań spowoduje duży skok o północy. W przeciwieństwie do tego, użycieH H * * *
nadal wykonywałoby każde zadanie raz dziennie, ale nie wszystkie w tym samym czasie, lepiej używając ograniczonych zasobów.
Zauważ również, że:
Symbol
H
może być traktowany jako losowa wartość w zakresie, ale w rzeczywistości jest to hash nazwy zadania, a nie Funkcja losowa, więc wartość pozostaje stabilna dla danego projekt.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-21 17:04:05
Jenkins pozwala skonfigurować wiele razy, oddzielone podziałem na linie.
Jeśli potrzebujesz go budować codziennie o 7 rano, wraz z każdą niedzielę o 4 pm, poniżej działa dobrze.
H 7 * * *
H 16 * * 0
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-21 17:05:54
*/5 * * * *
oznacza co 5 minut
5 * * * *
oznacza 5. minutę każdej godziny
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-22 19:40:58
Aby zaplanować zadanie crona co 5 minut, musisz zdefiniować ustawienia crona w następujący sposób:
*/5 * * * *
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-21 17:04:52
Format jest następujący:
MINUTA( 0-59), GODZINA (0-23), DZIEŃ (1-31), MIESIĄC (1-12), DZIEŃ TYGODNIA (0-6)
Zamiast dowolnej wartości można wstawić literę H, reprezentującą słowo Hash. Obliczy parametr na podstawie kodu hashowego Twojej nazwy projektu.
Jest tak, że jeśli budujesz kilka projektów na swojej maszynie budującej w tym samym czasie, powiedzmy codziennie o północy, nie wszystkie rozpoczynają swoją realizację w o tej samej porze. Każdy projekt rozpoczyna swoją realizację w innej minucie w zależności od jego kodu hashowego.
Możesz również określić wartość pomiędzy liczbami, tzn. H(0,30) zwróci kod hash projektu, w którym możliwe są skróty 0-30.
Przykłady:
Zacznij budować codziennie o 08: 30 rano, od poniedziałku do piątku: 30 08 * * 1-5
Dzień powszedni codziennie budować dwa razy dziennie, w porze lunchu 12: 00 i północy 00: 00, w niedzielę do Czwartek: 00 0,12 * * 0-4
Zacznij budować codziennie późnym popołudniem w godzinach 16:00 - 16:59 lub 16:00-16:59 w zależności od projektów hash: H 16 * * 1-5
Zacznij budować o północy: @midnight lub zacznij budować o północy, w każdą sobotę: 59 23 * * 6
Co pierwszy miesiąc w godzinach 2:00 - 02: 30: H(0,30) 02 01 * *
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-21 17:10:18
Spróbuj użyć 0 8 * * *. Powinno działać
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-23 22:20:38
Dla każdego, kto nie chce czekać całą godzinę, aby zobaczyć, czy dana kompilacja wyzwala:
Aby uzyskać hash, możesz pobrać hasher tutaj . Użyj pełnej nazwy projektu wpisanej na stronie branch i wydrukuj ją w następujący sposób:
System.out.println(Hash.from("sub/microservices/master"));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-21 17:07:06