Co je cron výraz?
Cron výraz je kompaktní plánovací řetězec, který říká plánovači úloh přesně, kdy má spustit úlohu. Formát se zrodil v roce 1975 uvnitř Unix V7 cron démona a od té doby se téměř nezměnil.
Jak funguje cron výraz?
Standardní cron výraz má pět polí oddělených mezerami, která společně definují opakující se plán. Engine kontroluje aktuální čas proti výrazu každou minutu a spouští úlohu, když všech pět polí odpovídá.
- Minuta (0–59). Která minuta v hodině.
0znamená v celou,*/5každých pět minut. - Hodina (0–23). Která hodina dne na 24hodinovém ciferníku.
0je půlnoc. - Den v měsíci (1–31). Který kalendářní den spustit.
1znamená 1. den v měsíci. - Měsíc (1–12 nebo LED–PRO). Které měsíce spustit.
*každý měsíc. - Den v týdnu (0–7, kde 0 i 7 znamenají neděli). Omezuje spouštění na konkrétní dny v týdnu.
Proč použít parser cron výrazů?
- Chyťte tiché chybné čtení před nasazením. Výraz `0 2 */3 * *` běží ve 2:00 každý třetí den, ne každé tři minuty.
- Většina cloudových plánovačů běží ve výchozím nastavení v UTC. Náhled deseti časů ve vaší lokální zóně odhalí posun DST.
- Zkratky jako `@daily`, `@weekly` jsou pohodlné, ale nejednoznačné. Parser ukazuje základní pětipolní formu.
- Tvůrce pole po poli umožňuje sestavit plán jeden sloupec po druhém.
Kde se používají cron výrazy?
Cron syntaxe se objevuje všude, kde úloha potřebuje opakování podle hodin:
- Plány záloh. Klasický `crontab -e` záznam, který ukládá databázi na S3 ve 2:00 v noci.
- GitHub Actions `schedule` triggery. Klíč `on.schedule.cron` přijímá standardní pětipolní cron.
- AWS EventBridge Scheduler. Cron výrazy EventBridge berou šesté pole pro rok.
Jak vypadá skutečný cron výraz?
Vezměte 0 9 * * 1-5 — běží v 9:00 každý všední den. Čtení polí zleva doprava: 0 je nultá minuta hodiny, 9 je 9:00, * na dni v měsíci znamená každý den, * na měsíci znamená každý měsíc a 1-5 na dni v týdnu omezuje spouštění na pondělí až pátek.
Cron výrazy jsou neodpouštějící přesně jedním způsobem: překlep vytvoří syntakticky platný plán, který běží v nesprávný čas.
Jaký je rozdíl mezi 5polním a 6polním cronem?
Pětipolní cron je klasická Unix gramatika s minutovým rozlišením. Šestipolní cron přidává úvodní sloupec sekund.
Co znamenají @hourly, @daily a @weekly?
Vixie-cron přezdívky zavedené v roce 1987. @hourly = 0 * * * *, @daily = 0 0 * * *.
Je neděle den 0 nebo den 7 v cronu?
Obojí, v klasickém Vixie cron — 0 a 7 jsou akceptovány.
Jak cron zvládá letní čas?
Záleží na časovém pásmu enginu. V UTC (výchozí na EventBridge, Kubernetes a GitHub Actions) DST neexistuje.