Přeskočit na hlavní obsah

Sestavovač Cron výrazů zdarma

Sestavujte, ověřujte a vysvětlujte cron výrazy pro plánované úlohy. Živý popis v srozumitelném jazyce, náhled příštích 5 spuštění a přednastavení běžných vzorů.

Funguje offline po načtení
minuta
(0-59)
hodina
(0-23)
den
(1-31)
měsíc
(1-12)
den týdne
(0-7)

Lidsky srozumitelně

V 09:00, Pondělí až pátek.

Běžné vzory

Kompatibilní se standardním Unix cron, GitHub Actions, Kubernetes CronJob a většinou plánovacích systémů. Použijte * pro „každý", */5 pro „každých 5", 1-5 pro rozsahy, 1,15 pro konkrétní hodnoty. Také přijímá @hourly, @daily, @weekly, @monthly, @yearly a názvy jako MON-FRI nebo JAN-DEC.

Běžná použití

  • Vytvořte Cron pro pracovní toky GitHub ActionsGitHub Actions používá syntaxi cron pro plánované pracovní toky. Vytvořte a ověřte svůj plán zde.
  • Vytvořte Cron pro Kubernetes CronJobsProstředky Kubernetes CronJob používají standardní syntaxi cron. Vytvořte a vysvětlete výraz vizuálně.
  • Vytvořte záznamy Cron pro Linux crontabVytvářejte výrazy pro tradiční Unix cron (cron, crontab -e) s důvěrou.
  • Naplánujte úlohy údržby databázeNaplánujte zálohu, vakuum nebo analýzu úloh s důvěrou pomocí výrazů cron.
  • Zjistěte, jak fungují výrazy CronKaždá úprava zobrazuje okamžité vysvětlení v angličtině a náhled příštích 5 spuštění — nejlepší způsob, jak se naučit cron.

Jak to funguje

Nástroj pro sestavení cron výrazu běží zcela ve vašem prohlížeči pomocí ručně napsaného parseru v lib/cron.ts — bez externí knihovny, bez volání serveru. Ověřuje výraz, sestavuje popis v prostém jazyce pomocí vestavěných API prohlížeče Intl.DateTimeFormat a Intl.ListFormat pro názvy dnů a měsíců s ohledem na jazykové nastavení a počítá časy dalších naplánovaných spuštění procházením vpřed v čase s logikou přeskakování polí, místo hrubé síly po každé minutě.

  1. 1
    Výraz se parsuje pole po poli
    Parser rozdělí výraz na pět (nebo šest) polí oddělených bílými znaky a každé z nich tokenizuje na čárky, rozsahy (např. 1-5), krokovou notaci (např. */15) a pojmenované hodnoty jako MON nebo JAN. @makra jako @daily se před parsováním rozbalí na svůj pětipolí ekvivalent. Neplatné hodnoty nebo čísla mimo rozsah se projeví jako typované chybové klíče mapované na lokalizované zprávy.
  2. 2
    Sestavuje se lidsky čitelný popis
    describeCron() v lib/cron.ts sestavuje anglickou (nebo lokalizovanou) větu prozkoumáním, která pole jsou zástupné znaky a která explicitní množiny. Názvy dnů a měsíců se řeší přes Intl.DateTimeFormat s aktivním jazykovým nastavením a položky seznamu se spojují pomocí Intl.ListFormat, aby spojka („a“ vs. „,“ vs. forma specifická pro jazyk) odpovídala jazyku uživatele.
  3. 3
    Časy dalších spuštění se počítají s přeskakováním polí
    nextRuns() prochází objekt Date vpřed od aktuálního okamžiku, ale přeskakuje celé měsíce, dny nebo hodiny, které nemohou odpovídat, místo testování každé minuty. To znamená, že nemožný rozvrh jako 30. únor rychle skončí kontrolou pětiletého horizontu, místo aby procházel 2,6 milionu iterací.
  4. 4
    Výraz se sdílí přes fragment URL
    Jakýkoli výraz, který napíšete, se zapisuje do fragmentu URL stránky jako #expr= (s debounce 500 ms přes window.history.replaceState). Fragment se nikdy neodesílá na server; stránka se z něj při načtení hydratuje, takže sdílení nebo uložení URL do záložek obnoví přesný výraz bez jakéhokoli stavu na serveru.

Související nástroje

Časté dotazy