onlinetools.dev

Parser wyrażeń cron

Wyjaśnij dowolny harmonogram cron prostym językiem wraz z czasami uruchomień

Działa lokalnie
loading…
O tym narzędziu

Wklej pięciopolowe wyrażenie cron i dostań je wyjaśnione zwykłym językiem, z rozbiciem pole po polu oraz — częścią, która wyłapuje prawdziwe pomyłki — pięcioma najbliższymi rzeczywistymi terminami uruchomienia policzonymi w Twojej strefie czasowej. „0 3 * * 1” czyta się jako „o 03:00, w poniedziałki”, a dalej idą konkretne daty, w których zadanie wystartuje.

Parser obsługuje pełną standardową składnię: listy (1,15), zakresy (9-17), kroki (*/15), nazwy miesięcy i dni tygodnia (jan, mon), 7 jako niedzielę oraz rodzinę makr @daily/@hourly. Realizuje też regułę, o której wszyscy zapominają: gdy ograniczone są jednocześnie dzień miesiąca i dzień tygodnia, zadanie uruchamia się, gdy pasuje którykolwiek z nich, a nie oba naraz.

Wyrażenia sześciopolowe (Quartz, z sekundami) są wykrywane i wyraźnie sygnalizowane, zamiast po cichu zostać źle zinterpretowane — to najczęstsze źródło zamieszania w stylu „mój cron chodzi nie wtedy, co trzeba” przy przenoszeniu zadań między harmonogramami Javy a uniksowym crontabem.

Często zadawane pytania

Jakie jest pięć pól i w jakiej kolejności?
Minuta (0–59), godzina (0–23), dzień miesiąca (1–31), miesiąc (1–12), dzień tygodnia (0–6, niedziela = 0, przy czym 7 też jest przyjmowane jako niedziela). Zapamiętanie kolejności to odwieczna udręka — panel rozbicia podpisuje każde pole Twojego wyrażenia.
Dlaczego „0 0 1 * 1” uruchamia się częściej, niż się spodziewałem?
Ponieważ ograniczone są zarówno dzień miesiąca (1.), jak i dzień tygodnia (poniedziałek), cron uruchamia zadanie, gdy pasuje KTÓRYKOLWIEK z nich — czyli każdego pierwszego dnia miesiąca ORAZ w każdy poniedziałek. Żeby uzyskać „1. tylko wtedy, gdy wypada w poniedziałek”, trzeba sprawdzić datę w samym skrypcie.
W jakiej strefie czasowej podawane są kolejne uruchomienia?
W lokalnej strefie Twojej przeglądarki, wypisanej obok wyników. Prawdziwe crontaby działają w strefie serwera (albo według linii TZ= w niektórych cronach) — zawsze sprawdź, czego używa maszyna docelowa, zwłaszcza przy zmianach czasu.
Czy obsługiwane są sekundy albo lata?
Nie — to rozszerzenia Quartza (Java) z 6 lub 7 polami. Standardowy uniksowy cron ma dokładnie pięć pól i rozdzielczość jednej minuty. Wejście sześciopolowe jest wykrywane i zgłaszane jako Quartz, a nie odczytywane błędnie.
Powiązane narzędzia