Przejdź do treści

Twórz i wyjaśniaj wyrażenia cron

Zbuduj harmonogram cron wizualnie, odczytaj go prostym językiem i sprawdź kolejne terminy uruchomień w dowolnej strefie czasowej. Obsługa składni standardowej, Quartz i AWS – w przeglądarce.

Prostym językiem

At 09:30, on Monday through Friday

Gotowe wzorce

Zbuduj wizualnie

Następne 10 uruchomień

Obliczanie…

Godziny pominięte przez zmianę czasu na letni lub zimowy nie są uruchamiane, a powtórzona godzina uruchamia się raz. Prawdziwe demony crona zachowują się tu nieco inaczej.

Ściągawka – Standardowy
PoleDozwolone wartości
Minuta0–59
Godzina0–23
Dzień miesiąca1–31
Miesiąc1–12 lub JAN–DEC
Dzień tygodnia0–7 (0 i 7 = niedziela) lub SUN–SAT
SymbolZnaczenie
*dowolna wartość
,lista: 1,15 = 1. i 15. dzień
-zakres: 1-5 = od 1 do 5
/krok: */15 = co 15; 5/15 = 5, 20, 35, 50
@dailymakra: @yearly @monthly @weekly @daily @hourly (oraz @reboot)

Gdy ograniczone są jednocześnie dzień miesiąca i dzień tygodnia, standardowy cron uruchamia zadanie w dni pasujące do któregokolwiek z nich.

Działa w przeglądarce · bez przesyłania na serwerJak to działa

Jak korzystać: Kreator wyrażeń cron

  1. 1

    Wybierz dialekt

    Wybierz standardowy cron, cron z sekundami, Quartz lub AWS EventBridge – albo po prostu wklej wyrażenie, a o dialekcie zdecyduje liczba pól.

  2. 2

    Wpisz lub zbuduj harmonogram

    Wpisz wyrażenie, zacznij od gotowego wzorca albo ustaw każde pole w edytorze wizualnym.

  3. 3

    Przeczytaj opis

    Sprawdź opis prostym językiem i podświetlone pola, aby upewnić się, że harmonogram znaczy dokładnie to, co chcesz.

  4. 4

    Sprawdź kolejne uruchomienia

    Wybierz strefę czasową, potwierdź następne 10 terminów uruchomienia, a potem skopiuj wyrażenie.

Limity i Pro

Za darmo i bez rejestracji: 4 dialekty, 12 gotowych wzorców i następne 10 terminów uruchomienia w jednej z ponad 400 stref czasowych, wyszukiwane do 30 lat do przodu (lub do ostatniego roku z wyrażenia).

Pro usuwa reklamy; kreator działa tak samo w każdym planie. Zobacz Pro

O narzędziu: Kreator wyrażeń cron

Wyrażenie cron zapisuje harmonogram w kilku polach oddzielonych spacjami, a jedna źle wpisana liczba potrafi zamienić „każdy dzień roboczy o 9” w „każdą minutę dziewiątej godziny”. Ten kreator pozwala wpisać lub wkleić wyrażenie i od razu zobaczyć je opisane prostym językiem, z podpisanymi polami, a do tego pokazuje dziesięć kolejnych terminów uruchomienia.

Obsługiwane są cztery dialekty, bo naprawdę się różnią. Standardowy cron ma pięć pól – minutę, godzinę, dzień miesiąca, miesiąc i dzień tygodnia – i jest używany w crontab, demonach cron w Linuksie, zadaniach CronJob w Kubernetesie oraz w GitHub Actions; akceptuje też makra, takie jak @daily. Dialekt z sekundami dodaje na początku pole sekund, jak w node-cron i croner. Quartz używa sześciu lub siedmiu pól z sekundami i opcjonalnym rokiem, numeruje niedzielę jako 1, wymaga znaku ? w jednym z pól dnia oraz dodaje L („ostatni”), W („najbliższy dzień roboczy”) i # („trzeci piątek”). AWS EventBridge ma sześć pól zakończonych rokiem, stosuje te same zasady dni co Quartz i zapisuje się jako cron(…). Wklejenie wyrażenia zmienia dialekt, gdy liczba pól jednoznacznie na to wskazuje, a zmiana dialektu przekształca to, co już masz, o ile to możliwe.

Edytor wizualny ustawia każde pole za pomocą opcji: co, co N, wybrane wartości i zakres, a gotowe wzorce obejmują typowe zadania. Terminy uruchomienia są liczone w dowolnej strefie czasowej IANA, z uwzględnieniem luk związanych ze zmianą czasu, a reguły EventBridge domyślnie używają UTC, tak jak ocenia je AWS.

Kreator sprawdza wyłącznie składnię i czas: nie zna zegara Twojego serwera, pominiętych uruchomień, gdy maszyna była wyłączona, ani ograniczeń konkretnych harmonogramów, jak minimalny odstęp w GitHubie.

Prywatność

Wyrażenia są analizowane, a terminy uruchomień liczone przez kod działający na tej stronie, na podstawie danych o strefach czasowych z przeglądarki; nic nie jest wysyłane na serwer. Wybrany dialekt i strefa czasowa zostają zapisane w pamięci lokalnej na kolejną wizytę.

Funkcje

Opisy prostym językiem

„O 09:30, od poniedziałku do piątku” zamiast zgadywania, co robi 30 9 * * 1-5.

10 kolejnych uruchomień, dowolna strefa

Terminy w UTC lub w dowolnej strefie czasowej IANA, z uwzględnieniem zmian czasu.

Składnia Quartz i AWS

Sekundy, lata oraz znaki ?, L, W i # dla harmonogramów, które je obsługują.

Kreator wyrażeń cron: najczęstsze pytania

Dlaczego zadanie uruchamia się w więcej dni, niż zakładałem?
W standardowym cronie, gdy ograniczone są jednocześnie pola dnia miesiąca i dnia tygodnia, zadanie uruchamia się, gdy pasuje którekolwiek z nich. Dlatego 0 9 13 * 5 działa w każdy 13. dzień miesiąca oraz w każdy piątek, a nie tylko w piątek trzynastego. Opis w kreatorze to wyjaśnia. Quartz i AWS unikają tej niejednoznaczności, wymagając znaku ? w jednym z tych dwóch pól.
Co oznacza */15 w wyrażeniu cron?
Ukośnik oznacza krok: */15 w polu minut to co 15 minut od zera, czyli o :00, :15, :30 i :45. Wartość początkowa przesuwa ten rytm: 5/15 uruchamia zadanie o :05, :20, :35 i :50. W połączeniu z zakresem 9-17/2 w polu godzin oznacza co drugą godzinę od 9 do 17.
Jakiej strefy czasowej używa cron?
Klasyczny demon cron używa lokalnej strefy serwera, chyba że crontab ustawia CRON_TZ lub TZ. CronJob w Kubernetesie domyślnie korzysta ze strefy kontrolera, ale przyjmuje pole timeZone, harmonogramy GitHub Actions działają w UTC, a reguły EventBridge zawsze używają UTC, natomiast EventBridge Scheduler pozwala wybrać strefę. Wybierz tutaj odpowiednią strefę, by zobaczyć prawdziwe terminy.
Co się dzieje przy zmianie czasu na letni lub zimowy?
Gdy zegary przesuwają się do przodu, godziny lokalne w pominiętej godzinie nie istnieją, a gdy cofają się, jedna godzina zdarza się dwa razy. Ten podgląd pomija nieistniejące godziny, a powtórzone uruchamia raz. Prawdziwe demony różnie to traktują: Vixie cron i cronie próbują uruchomić pominięte zadania, więc dla zadań między 01:00 a 03:00 czasu lokalnego wybierz UTC lub sprawdź dokumentację harmonogramu.
Jak zamienić wiersz crontab na format Quartz lub AWS?
Wybierz nowy dialekt z listy, a wyrażenie zostanie przekonwertowane: dla Quartz dodane zostanie pole sekund, dla AWS pole roku, numery dni tygodnia przejdą z 0–6 na 1–7, a w nieużywanym polu dnia pojawi się ?. Jeśli oryginał ustawia jednocześnie dzień miesiąca i dzień tygodnia, dostaniesz informację, że docelowy dialekt nie potrafi wyrazić takiej kombinacji.