CRON

Interpreter wyrażeń

sekundy
minuty
godziny
dni
miesiąca
miesiące
dni
tygodnia
(lata)
O sekundzie 0, po każdej 10 minucie zaczynając od 0 minuty, każdej godzinie.
To narzędzie interpretuje dialekt Quartz wyrażeń cron (org.quartz.CronExpression): sześć lub siedem pól oddzielonych spacją - sekundy, minuty, godziny, dzień miesiąca, miesiąc, dzień tygodnia i opcjonalny rok. Dokładnie jedno z pól dzień miesiąca i dzień tygodnia musi mieć wartość '?', więc wyrażenie takie jak '0 0 0 * * *' jest tu odrzucane, choć inne schedulery je przyjmują. Zobacz "Inne dialekty cron" poniżej, żeby sprawdzić, czym różnią się CronExpression ze Springa i klasyczny unixowy cron.
Opis
NazwaWymaganeDozwolone
wartości
Dozwolone
znaki specjalne

sekundy

Tak

0-59

, - * /

minuty

Tak

0-59

, - * /

godziny

Tak

0-23

, - * /

dni miesiąca

Tak

1-31

, - * ? / L W

miesiące

Tak

1-12 lub JAN-DEC

, - * /

dni tygodnia

Tak

1-7 lub SUN-SAT

1 = niedziela, 7 = sobota

, - * ? / L #

lata

Nie

brak lub 1970-2099

, - * /

Wyjaśnienie znaków specjalnych
ZnakWyjaśnienie

,

Oddziela kolejne wartości.

-

Określa zakres od do.

*

Wszystkie wartości pola, np.: w polu godzina oznacza "o każdej godzinie".

?

Przydatne w sytuacji, gdy konieczne jest określenie wartości w jednym z dwóch pól, w których znak jest dozwolony, ale nie w drugim. Na przykład, jeśli chcę, aby mechanizm uruchamiał się 5 dnia miesiąca, ale nie zależy mi na tym, który to będzie dzień tygodnia, umieszczę "5" w polu dotyczącym dnia miesiąca i "?" w polu dotyczącym dnia tygodnia. W tym dialekcie dokładnie jedno z pól dzień miesiąca i dzień tygodnia musi być '?' - podanie wartości w obu, albo '*' w obu, jest odrzucane.

/

Używany do określania kroków. Pierwsza wartość określa kiedy krok się zaczyna, druga wartość określa co ile krok się wykona, np.: "0/15" w polu minut oznacza minuty 0, 15, 30, 45, natomiast "5/15" oznacza wykonanie w minucie 5, 20, 35 i 50.

#

Hash "#" używany do określenia "n-tego" dnia miesiąca, np.: wartość 4#3 w polu dnia tygodnia oznacza trzecią środę miesiąca (dzień 4 = środa i #3 = trzecia środa miesiąca).

L

Litera "L" oznacza "ostatni" w polach dni tygodnia lub dni miesiąca. Na przykład "0 0 9 ? * 3L" oznacza ostatni wtorek każdego miesiąca o godzinie 9. Można także w polu dni miesiąca określić "LW", co oznacza ostatni dzień tygodnia miesiąca. Użyta samodzielnie w polu dnia tygodnia (samo "L", bez dnia przed nim), oznacza sobotę (dzień 7), a nie "ostatni dzień tygodnia".

W

Określa dzień tygodnia (od poniedziałku do piątku) najbliższy podanemu dniu miesiąca. Na przykład "1W" oznacza "dzień roboczy najbliższy 1 dnia miesiąca". Jeśli pierwszy wypada w niedziele, to cron zostanie uruchomiony w poniedziałek 2 dnia miesiąca.

Przykłady
WyrażenieOpis

0 0 12 * * ?

Wykonaj codziennie o 12:00.

0 0/20 * * * ?

Wykonaj co 20 minut, w minutach 0, 20, 40.

0 15 10 * * ? 2023

Wykonaj o 10:15 codziennie w 2023 roku.

* 30 3 ? * 1,7

Wykonaj co sekundę o 3:30 w sobotę i niedzielę.

Inne dialekty cron
Ta strona (Quartz)Spring CronExpressionKlasyczny unixowy cron

Liczba pól

6 lub 7

6

5, bez sekund

'?' w dniu miesiąca / dniu tygodnia

wymagany w dokładnie jednym polu

opcjonalny, działa jak '*'

nieobsługiwany

Dzień miesiąca i dzień tygodnia razem

odrzucane

dozwolone - oba muszą być zgodne (AND)

dozwolone - wystarczy jedno (OR)

Numeracja dni tygodnia

1 = niedziela … 7 = sobota

0 lub 7 = niedziela, 1 = poniedziałek

0 lub 7 = niedziela, 1 = poniedziałek