Zum Hauptinhalt springen

Cron-Ausdrucks-Builder – kostenlos

Cron-Ausdrücke für geplante Aufgaben erstellen, validieren und erklären. Live-Beschreibung in einfacher Sprache, Vorschau der nächsten 5 Ausführungen und gängige Mustervoreinstellungen.

Funktioniert nach dem Laden offline
Minute
(0-59)
Stunde
(0-23)
Tag
(1-31)
Monat
(1-12)
Wochentag
(0-7)

In einfachen Worten

Um 09:00, Montag bis Freitag.

Häufige Muster

Kompatibel mit Standard-Unix-cron, GitHub Actions, Kubernetes CronJob und den meisten Planungssystemen. * für 'jeden', */5 für 'alle 5', 1-5 für Bereiche, 1,15 für bestimmte Werte. Akzeptiert auch @hourly, @daily, @weekly, @monthly, @yearly und Namen wie MON-FRI oder JAN-DEC.

Häufige Anwendungen

  • Cron für GitHub Actions-Workflows erstellenGitHub Actions verwendet Cron-Syntax für geplante Workflows. Erstellen und überprüfen Sie Ihren Zeitplan hier.
  • Cron für Kubernetes CronJobs erstellenKubernetes CronJob-Ressourcen verwenden Standard-Cron-Syntax. Bauen Sie und erklären Sie den Ausdruck visuell.
  • Erstellen Sie Cron-Einträge für Linux crontabErstellen Sie mit Zuversicht Ausdrücke für traditionelles Unix Cron (cron, crontab -e).
  • Planen Sie DatenbankwartungsaufgabenPlanen Sie Sicherungs-, Vakuum- oder Analysejobs mit Zuversicht mithilfe von Cron-Ausdrücken.
  • Erfahren Sie, wie Cron-Ausdrücke funktionierenJede Anpassung zeigt sofortige Erklärung auf Englisch und eine Vorschau der nächsten 5 Läufe — beste Art, Cron zu lernen.

So funktioniert es

Der Cron-Ausdrucks-Builder läuft vollständig in Ihrem Browser mit einem selbst geschriebenen Parser in lib/cron.ts – keine externe Bibliothek, kein Serveraufruf. Er prüft den Ausdruck, erstellt eine verständliche Beschreibung mithilfe der integrierten Browser-APIs Intl.DateTimeFormat und Intl.ListFormat für regionsgerechte Tages- und Monatsnamen und berechnet die nächsten geplanten Ausführungen, indem er mit Feld-Überspringlogik durch die Zeit geht, statt jede Minute per Brute Force zu prüfen.

  1. 1
    Ausdruck wird Feld für Feld geparst
    Der Parser teilt den Ausdruck in fünf (oder sechs) durch Leerraum getrennte Felder und zerlegt jedes nach Kommas, Bereichen (z. B. 1-5), Schrittnotation (z. B. */15) und benannten Werten wie MON oder JAN. @-Makros wie @daily werden vor dem Parsen zu ihren Fünf-Feld-Entsprechungen erweitert. Ungültige Werte oder Zahlen außerhalb des Bereichs erscheinen als typisierte Fehlerschlüssel, die auf lokalisierte Meldungen abgebildet werden.
  2. 2
    Menschenlesbare Beschreibung wird zusammengesetzt
    describeCron() in lib/cron.ts erstellt den englischen (oder lokalisierten) Satz, indem es prüft, welche Felder Platzhalter und welche explizite Mengen sind. Tages- und Monatsnamen werden über Intl.DateTimeFormat mit der aktiven Sprache aufgelöst, und Listenelemente werden mit Intl.ListFormat verbunden, sodass die Konjunktion („und“ vs. „,“ vs. sprachspezifische Form) der Sprache des Nutzers entspricht.
  3. 3
    Nächste Ausführungszeiten mit Feld-Überspringen berechnet
    nextRuns() bewegt ein Date-Objekt vom aktuellen Zeitpunkt vorwärts, überspringt aber ganze Monate, Tage oder Stunden, die nicht passen können, statt jede Minute zu testen. Ein unmöglicher Zeitplan wie der 30. Februar endet daher schnell über eine Fünfjahresprüfung, statt 2,6 Millionen Mal zu durchlaufen.
  4. 4
    Ausdruck wird über das URL-Fragment geteilt
    Jeder eingegebene Ausdruck wird als #expr= in das URL-Fragment der Seite geschrieben (500 ms entprellt über window.history.replaceState). Das Fragment wird nie an einen Server gesendet; die Seite liest es beim Laden aus, sodass das Teilen oder Speichern einer URL den exakten Ausdruck ohne Serverzustand wiederherstellt.

Ähnliche Tools

Häufige Fragen