Jak funguje Parser výrazů cron
Nástroj Parser výrazů cron slouží k analýze a dekonstrukci plánovacích výrazů cron na jejich jednotlivé složky. Vložený výraz cron rozloží na srozumitelný rozbor polí, ze kterého je okamžitě patrné, co která část plánu znamená. Kromě samotného vysvětlení syntaxe nástroj vypočítá a zobrazí seznam nadcházejících časů, kdy se plánovaný úkol spustí. Tyto časy spuštění jsou prezentovány v místním časovém pásmu vašeho prohlížeče.
Tento online nástroj je užitečný zejména pro:
- Vývojáře, kteří potřebují ověřit konfiguraci plánování svých úloh.
- Provozní pracovníky (operations), kteří spravují naplánované úlohy.
- Pracovníky technické podpory při řešení problémů s naplánovanými procesy.
Vstupy nástroje
Pro analýzu plánu vyžaduje nástroj dva základní vstupy:
- Výraz cron: Jednořádkový textový vstup (označený jako Výraz cron). Podporovány jsou standardní pětisložkové výrazy cron, které obsahují pole pro minutu, hodinu, den v měsíci, měsíc a den v týdnu. Jako příklad vstupu může posloužit výraz
*/15 9-17 * * MON-FRI. - Počet: Číselný vstup (označený jako Počet), kterým lze upravit množství zobrazených nadcházejících časů spuštění. Tento parametr lze nastavit v rozsahu od 1 do 20.
Výstupy a rozbor plánu
Po zadání platného výrazu nástroj vygeneruje podrobný Rozbor plánu a přehled Příští spuštění.
Rozbor plánu
V této části nástroj přehledně interpretuje každé z pěti polí výrazu:
- Minuta: Analyzovaná hodnota pro pole minuty.
- Hodina: Analyzovaná hodnota pro pole hodiny.
- Den v měsíci: Analyzovaná hodnota pro pole dne v měsíci.
- Měsíc: Analyzovaná hodnota pro pole měsíce.
- Den v týdnu: Analyzovaná hodnota pro pole dne v týdnu.
Pokud pole obsahuje zástupný znak *, nástroj jej interpretuje jako Libovolný. Pro zápisy typu */n (kroky) zobrazuje rozbor specifické texty podle daného pole:
- Každých
{n}minut - Každých
{n}hodin - Každých
{n}dní (pro dny v měsíci i dny v týdnu) - Každých
{n}měsíců
Příští spuštění
V této sekci se zobrazuje seznam budoucích časů spuštění. U seznamu je zobrazen text (váš místní čas), který upozorňuje, že časy odpovídají vašemu časovému pásmu. Nástroj také uvádí údaj Zobrazená spuštění, což je počet aktuálně vypsaných budoucích spuštění.
Podporovaná syntaxe a pravidla
Nástroj pracuje se standardní syntaxí cronu a specifickými pravidly pro vyhodnocování:
- Podporované formáty: Vedle standardních pěti polí jsou podporovány rozsahy (např.
1-5), kroky (např.*/15), seznamy (např.1,15), pojmenované měsíce (např.JAN), pojmenované dny v týdnu (např.MON) a textové zkratky@yearly,@monthly,@weekly,@dailya@hourly. - Omezení syntaxe: Nástroj nepodporuje šesté pole pro sekundy ani rozšíření specifická pro Quartz (jako jsou znaky
L,Wnebo#). - Interakce polí pro dny: Pokud jsou ve výrazu současně omezeny jak den v měsíci, tak den v týdnu (tedy ani jedno pole neobsahuje
*), stačí pro spuštění splnění pouze jedné z těchto podmínek (shoda v kterémkoli z nich).
Chybové stavy a chování nástroje
Nástroj reaguje na různé stavy vstupu následovně:
- Prázdný vstup: Pokud je vstupní pole prázdné, nástroj se vrátí do výchozího stavu připravenosti.
- Syntaktická chyba: Pokud je zadaný výraz syntakticky nesprávný, zobrazí se chybové hlášení Neplatný výraz cron.
- Nerealizovatelný plán: Pokud je výraz syntakticky správný, ale definuje plán, který nemůže nikdy nastat, nástroj zobrazí upozornění: K tomuto spuštění nemůže nikdy dojít – zkontrolujte, zda vybraný den v měsíci existuje ve všech zvolených měsících. K tomu dochází nejčastěji tehdy, když je nastaven den v měsíci na hodnotu 31, ale mezi vybranými měsíci figurují ty, které mají méně dní (duben, červen, září nebo listopad).
Ochrana soukromí při zpracování
Při používání tohoto nástroje jsou vaše data v bezpečí. Celá analýza a zpracování zadaného výrazu cron probíhá lokálně přímo ve vašem webovém prohlížeči. Žádné zadané výrazy ani data se neodesílají do služby BroBroGo.
Často kladené otázky
Jakou syntaxi cronu tento nástroj podporuje?
Standardní cron s 5 poli – minuta, hodina, den v měsíci, měsíc a den v týdnu – včetně rozsahů (1-5), kroků (*/15), seznamů (1,15), pojmenovaných měsíců a dnů v týdnu (JAN, MON) a zkratek jako @yearly, @monthly, @weekly, @daily nebo @hourly. Jedno důležité pravidlo: pokud jsou omezeny jak den v měsíci, tak den v týdnu (nejsou nastaveny na *), stačí shoda v kterémkoli z nich – nemusí platit obě podmínky současně.
V jakém časovém pásmu se zobrazují příští časy spuštění?
Místní časové pásmo vašeho prohlížeče – stejné, jaké používají vaše systémové hodiny. Standardní cron v sobě nenese informaci o časovém pásmu; o tom rozhoduje plánovač úloh, který jej spouští. Tyto časy proto berte jako náhled vašeho místního plánu, který nemusí nutně odpovídat času na serveru.
Proč se zobrazuje, že k tomuto spuštění nemůže nikdy dojít?
Obvykle se jedná o hodnotu dne v měsíci, která v některém z vybraných měsíců neexistuje – například 31. den v kombinaci s dubnem, červnem, zářím nebo listopadem. Vyberte den, který existuje ve všech uvedených měsících, nebo rozdělte plán do samostatných výrazů.