Jestem nowy w Jenkins. Mam pracę, którą muszę zaplanować co godzinę.
ja używam
* */1 * * *
ale to nie działa skutecznie.
Podaj inne rozwiązanie.
@hourlylub0 * * * *
Jestem nowy w Jenkins. Mam pracę, którą muszę zaplanować co godzinę.
ja używam
* */1 * * *
ale to nie działa skutecznie.
Podaj inne rozwiązanie.
@hourlylub0 * * * *
Odpowiedzi:
Jenkins używa wyrażenia cron, jak wyjaśniono tutaj
Aby zaplanować co godzinę, możesz umieścić
0 * * * *
Następnie twoje zadanie będzie wykonywane co godzinę (07:00, 08:00, 09:00 i tak dalej)
AKTUALIZACJA
Jako wyjaśnienie oryginalnej konfiguracji, składnia
* */1 * * *
wykona zadanie co minutę.
AKTUALIZACJA 2
Zgodnie z żądaniem w komentarzu, tutaj składnia harmonogramu co 3 godziny
0 */3 * * *
Składnia */noznacza, że zadania będą planowane co ngodzinę
Jenkins sugeruje następującą metodę:
H * * * *
Hzamiast wartości zakodowanych na stałe
Wiem, że to stary wątek, ale odpowiadam, bo podobno ludzie wciąż tu lądują.
Najlepsza odpowiedź nie powinna być już używana.
Jenkins wprowadził wartość H.
To pole jest zgodne ze składnią cron (z niewielkimi różnicami). W szczególności każda linia składa się z 5 pól oddzielonych klawiszem TAB lub białymi spacjami:
MINUTA GODZINA DOM MIESIĄC DOW
- MINUTA Minuty w ciągu godziny (0–59)
- GODZINA Godzina dnia (0–23)
- DOM Dzień miesiąca (1–31)
- MIESIĄC Miesiąc (1–12)
- DOW Dzień tygodnia (0–7), w którym 0 i 7 to niedziela.
Aby określić wiele wartości dla jednego pola, dostępne są następujące operatory. W kolejności pierwszeństwa
*określa wszystkie prawidłowe wartościM-Nokreśla zakres wartościM-N/Xlub*/Xkroki w odstępach X przez określony zakres lub cały prawidłowy zakresA,B,...,Zwylicza wiele wartościAby umożliwić cyklicznie zaplanowanym zadaniom równomierne obciążenie systemu, w miarę możliwości należy używać symbolu H (dla „skrótu”). Na przykład użycie 0 0 * * * dla kilkunastu codziennych zadań spowoduje duży skok o północy. W przeciwieństwie do tego, użycie HH * * * nadal wykonywałoby każde zadanie raz dziennie, ale nie wszystkie w tym samym czasie, lepiej używając ograniczonych zasobów.
Symbol H może być używany z zakresem. Na przykład GG (0–7) * * * oznacza jakiś czas między 12:00 AM (północ) a 7:59 AM. Możesz również użyć przedziałów kroków dla H, z zakresami lub bez.
Symbol H można traktować jako wartość losową w zakresie, ale w rzeczywistości jest to skrót nazwy zadania, a nie funkcja losowa, dzięki czemu wartość pozostaje stabilna dla każdego projektu.
Uwaga: w polu dnia miesiąca krótkie cykle, takie jak * / 3 lub H / 3, nie będą działać konsekwentnie pod koniec większości miesięcy, ze względu na zmienną długość miesiąca. Na przykład * / 3 będzie działać pierwszego, czwartego,… 31 dnia długiego miesiąca, a następnie ponownie następnego dnia następnego miesiąca. Hashe są zawsze wybierane w zakresie 1-28, więc H / 3 spowoduje przerwę między seriami od 3 do 6 dni na koniec miesiąca. (Dłuższe cykle również będą miały niespójne długości, ale efekt może być stosunkowo mniej zauważalny.)
Tak więc poprawna odpowiedź na budowanie raz na godzinę to
H * * * *
za każde 3 godziny
H H/3 * * *
Różnicę między *i Hmożna również wyjaśnić jako
*przekłada się na KAŻDĄHprzekłada się na DOWOLNEWięc np
* * * * *
przekłada się na: Buduj co minutę, co godzinę, każdego dnia miesiąca, każdego miesiąca, bez względu na dzień tygodnia.
H * * * *
tłumaczy się na: Buduj raz na godzinę (x), nie ma znaczenia, jaka jest dokładna minuta (może to być dowolna minuta między x: 00 a x: 59)
H H * * *
przekłada się na: Buduj raz dziennie, bez względu na to, która jest godzina (może to być dowolna minuta i godzina między 00:00 a 23:59)
Powód, dla którego powinieneś preferować stosowanie Hzamiast wartości czasu na stałe, jest również wyjaśniony jak wcześniej
Jeśli masz skonfigurowanych 100 zadań
0 0 * * *
wszyscy będą próbować zacząć w tym samym czasie, powodując na przykład dużo sondaży i ściągając ruch o północy.
Jeśli je masz, wszystkie skonfigurowane przy użyciu
H H * * *
wszystkie zostaną zbudowane raz dziennie, ale nie wszystkie w tym samym czasie, ale rozłożone w ciągu dnia.
Możesz lepiej zaplanować schdedule, używając zakresów czasowych np
H H(18-23) * * *
Wszystkie zadania będą budowane codziennie w dowolnym czasie od 18:00 do 23:59.
Możliwe jest nawet zaplanowanie zadań przekraczających północ, np. Budowa między 19:00 a 5:00.
Ale ponieważ cron zwykle nie pozwala na to, możesz użyć lewy w strefie czasowej Shift.
Np. Mieszkam w strefie czasowej MEZ, czyli GMT + 1, i chcę budować wszystkie miejsca pracy między 19:00 a 5:00. W tym celu przesuwam całą strefę czasową o 5 godzin
TZ=Etc/GMT+6
Następnie używam zakresu przesuwnego dla godzin rozpoczynających się o 14:00 (-> +5 = 19:00) i kończących się o 23:59 (-> +5 = 4:59)
H H(14-23) * * *
* */1 * * *
jest poprawne, działa co godzinę
Spróbuj użyć funkcji H, aby wszystkie zadania nie odpytywały w tym samym czasie do svn
H H/1 * * *
To powinno robić magię. Jeśli zadanie zajmuje więcej czasu lub wykonujesz funkcję wyzwalacza kompilacji. Zwiększ czas lub użyj wtyczki Jenkins, aby zatrzymać kompilację do czasu zakończenia poprzedniej kompilacji.
https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin
* * * * *=> uruchamiane co minutę. Do biegania między pewnym zakresem używasz go jak * 1-2 * * *<- działa to co minutę między 1:00 a 1:59 rano
* * 1-2 * *?
* 1-2 * * *. Pierwsza pozycja to Minute of our, druga pozycja hour of day, trzecia day of month, czwarta month of yeari piąta day of week(w szczególnych przypadkach pozwala również na szóstą year). Więc twoja linia * * 1-2 * *tłumaczy „Co minutę, co godzinę, pierwszy i drugi dzień każdego miesiąca i każdego dnia tygodnia.
*przekłada się everynatomiast Hprzekłada się any. Więc chociaż * * * * *oznacza każdą minutę, H * * * *oznacza kompilację raz na godzinę, ale nie obchodzi mnie dokładna minuta (może być gdzieś pomiędzy 0-59, jeśli nie jest zdefiniowana przez zakres) i H H * * *oznacza kompilację raz dziennie, ale nie obchodzi mnie o której godzinie.
Składnia jest następująca:
MINUTE Minutes within the hour (0-59)
HOUR The hour of the day (0-23)
DOM The day of the month (1-31)
MONTH The month (1-12)
DOW The day of the week (0-7) where 0 and 7 are Sunday.
Jeśli chcesz planować co 3 godziny, składnia powinna wyglądać:
* 3 * * * *