Przejdź do głównej treści
LibraTool logoLibraTool

Kreator wyrażeń cron za darmo

Twórz, waliduj i objaśniaj wyrażenia cron dla zaplanowanych zadań. Opis w zrozumiałym języku na żywo, podgląd 5 następnych uruchomień i typowe wzorce ustawień.

Działa offline po wczytaniu
minuta
(0-59)
godzina
(0-23)
dzień
(1-31)
miesiąc
(1-12)
dzień tygodnia
(0-7)

Prosto mówiąc

O 09:00, Od poniedziałku do piątku.

Popularne wzorce

Kompatybilny ze standardowym Unix cron, GitHub Actions, Kubernetes CronJob i większością systemów harmonogramowania. Użyj * dla 'każdy', */5 dla 'co 5', 1-5 dla zakresów, 1,15 dla konkretnych wartości. Akceptuje również @hourly, @daily, @weekly, @monthly, @yearly oraz nazwy takie jak MON-FRI lub JAN-DEC.

Typowe zastosowania

  • Buduj Cron dla Przepływów Pracy GitHub ActionsGitHub Actions używa składni cron dla zaplanowanych przepływów pracy. Zbuduj i zweryfikuj swój harmonogram tutaj.
  • Buduj Cron dla Kubernetes CronJobsZasoby Kubernetes CronJob używają standardowej składni cron. Zbuduj i wyjaśnij wyrażenie wizualnie.
  • Buduj Wpisy Cron dla Linux crontabBuduj wyrażenia dla tradycyjnego cron Unix (cron, crontab -e) z pewnością.
  • Zaplanuj Zadania Konserwacji Bazy DanychPlanuj zadania backup, vacuum lub analyze z pewnością za pomocą wyrażeń cron.
  • Naucz Się Jak Działają Wyrażenia CronKażda zmiana pokazuje natychmiastowe wyjaśnienie w prostym angielskim i podgląd następnych 5 uruchomień — najlepszy sposób na naukę cron.

Jak to działa

Kreator wyrażeń cron działa w całości w przeglądarce, z użyciem ręcznie napisanego parsera w lib/cron.ts — bez zewnętrznej biblioteki i wywołań serwera. Sprawdza wyrażenie, tworzy opis w zwykłym języku za pomocą wbudowanych API Intl.DateTimeFormat i Intl.ListFormat (dla nazw dni i miesięcy zgodnych z ustawieniami regionalnymi) i oblicza kolejne terminy uruchomień, przesuwając się w czasie z pomijaniem całych pól zamiast sprawdzania każdej minuty.

  1. 1
    Wyrażenie parsowane pole po polu
    Parser dzieli wyrażenie na pięć (lub sześć) pól rozdzielonych białymi znakami i rozbija każde z nich na przecinki, zakresy (np. 1-5), zapis kroku (np. */15) i nazwane wartości, takie jak MON czy JAN. Makra @, np. @daily, są przed parsowaniem rozwijane do odpowiedników z pięcioma polami. Nieprawidłowe wartości lub liczby spoza zakresu zwracają typowane klucze błędów powiązane z przetłumaczonymi komunikatami.
  2. 2
    Tworzenie czytelnego opisu
    describeCron() w lib/cron.ts buduje zdanie po angielsku (lub w innym języku), sprawdzając, które pola są symbolami wieloznacznymi, a które jawnymi zbiorami. Nazwy dni i miesięcy są rozwiązywane przez Intl.DateTimeFormat z aktywnymi ustawieniami regionalnymi, a elementy listy łączone przez Intl.ListFormat, aby spójnik („i”, przecinek lub forma właściwa dla języka) pasował do języka użytkownika.
  3. 3
    Kolejne terminy liczone z pomijaniem pól
    nextRuns() przesuwa obiekt Date do przodu od bieżącej chwili, ale pomija całe miesiące, dni lub godziny, które nie mogą pasować, zamiast sprawdzać każdą minutę. Dzięki temu niemożliwy harmonogram, np. 30 lutego, kończy się szybko po sprawdzeniu pięcioletniego horyzontu, zamiast wykonywać 2,6 miliona iteracji.
  4. 4
    Wyrażenie udostępniane przez fragment URL
    Każde wpisane wyrażenie jest zapisywane we fragmencie adresu strony jako #expr= (z opóźnieniem 500 ms przez window.history.replaceState). Fragment nigdy nie jest wysyłany na serwer; strona odtwarza z niego stan po wczytaniu, więc udostępnienie lub zapisanie adresu przywraca dokładnie to samo wyrażenie bez stanu po stronie serwera.

Powiązane narzędzia

Często zadawane pytania