Kostenloses Tool

Cron-Ausdruck-Explainer für Hangfire

Fügen Sie einen Cron-Ausdruck ein und sehen Sie, was er bedeutet und wann er genau als Nächstes läuft. Gebaut für wiederkehrende Jobs in Hangfire, die das Cronos-Format verwenden — 5 Felder oder 6 mit Sekunden —, funktioniert aber genauso für klassisches Unix-Cron.

—

Nächste Ausführungen
    Felder
    In Hangfire verwenden

    Läuft vollständig im Browser, es wird nichts gesendet. Teilbare Links: ?expr=0%203%20*%20*%20* an die URL anhängen.

    Syntax von Cron-Ausdrücken

    Ein Cron-Ausdruck ist eine Liste von Feldern, getrennt durch Leerzeichen. Jedes Feld schränkt ein, wann der Job laufen darf; er löst zu jedem Zeitpunkt aus, an dem alle Felder passen.

    PositionFeldErlaubte Werte
    (1)Sekunde — optional, nur bei 6 Feldern0-59
    1Minute0-59
    2Stunde0-23
    3Tag des Monats1-31, L, W
    4Monat1-12 oder JAN-DEC
    5Wochentag0-7 (0 und 7 = Sonntag) oder SUN-SAT, L, #

    Sonderzeichen: * jeder Wert, , Liste (1,15), - Bereich (MON-FRI), / Schrittweite (*/15 = alle 15), ? wie * in den Tagesfeldern. Makros wie @daily, @hourly und @weekly funktionieren ebenfalls.

    Häufige Hangfire-Zeitpläne

    ZeitplanAusdruckHangfire-Helfer
    Jede Minute* * * * *Cron.Minutely()
    Alle 15 Minuten*/15 * * * *—
    Jede volle Stunde0 * * * *Cron.Hourly()
    Täglich um 03:3030 3 * * *Cron.Daily(3, 30)
    Werktags um 07:000 7 * * 1-5—
    Jeden Montag um Mitternacht0 0 * * 1Cron.Weekly()
    Am Ersten jedes Monats0 0 1 * *Cron.Monthly()
    Nie (deaktiviert)0 0 31 2 *Cron.Never()

    Ein Zeitplan ist keine Garantie

    Der häufigste Vorfall mit wiederkehrenden Jobs ist kein falscher Ausdruck, sondern ein richtiger, der lautlos aufgehört hat auszulösen: Der Server mit dem Scheduler wurde herunterskaliert, nach einem Deploy lief kein Worker mehr, oder der Job warf bei jedem Versuch eine Exception und niemand hat es gesehen. Nichts davon steht im Cron-Ausdruck. Es braucht eine externe Prüfung, die merkt, wenn die erwartete Arbeit ausbleibt. Das ist die Idee hinter Heartbeat-Monitoring — und das, was QueueHawk für Hangfire übernimmt.

    FAQ

    Verwendet Hangfire UTC für Cron-Ausdrücke?

    Ja. Wiederkehrende Jobs werden in UTC ausgewertet, sofern keine Zeitzone angegeben ist, etwa new RecurringJobOptions { TimeZone = TimeZoneInfo.Local } oder eine bestimmte Zone über TimeZoneInfo.FindSystemTimeZoneById. Mit lokaler Zeitzone kann die Zeitumstellung einen Lauf in der betroffenen Stunde überspringen oder wiederholen.

    Kann Hangfire einen Job alle paar Sekunden ausführen?

    Hangfire akzeptiert Cron-Ausdrücke mit 6 Feldern inklusive Sekunden, etwa */30 * * * * *. Wiederkehrende Jobs werden aber von einem abfragenden Scheduler angestossen — Zeitpläne unter einer Minute sind deshalb nur ungefähr und für alles mit exaktem Timing ungeeignet.

    Was passiert, wenn Tag des Monats und Wochentag gesetzt sind?

    Der Job läuft, wenn eines von beiden zutrifft. 0 0 1,15 * 1 läuft am 1. und 15. jedes Monats und an jedem Montag — nicht nur an Montagen, die auf den 1. oder 15. fallen. Das ist klassisches Cron-Verhalten und sorgt regelmässig für Überraschungen.

    Was erzeugen Cron.Daily() und die anderen Hangfire-Helfer?

    Cron.Minutely() ist * * * * *, Cron.Hourly() ist 0 * * * *, Cron.Daily() ist 0 0 * * * (Mitternacht UTC), Cron.Weekly() ist 0 0 * * 1 (Montag), Cron.Monthly() ist 0 0 1 * * und Cron.Yearly() ist 0 0 1 1 *. Die meisten Helfer nehmen Argumente, etwa Cron.Daily(3, 30) für 03:30.

    Woher weiss ich, dass ein wiederkehrender Job wirklich gelaufen ist?

    Ein Cron-Ausdruck sagt nur, wann ein Job laufen soll. Ob er gelaufen ist, ist eine Monitoring-Frage: Ein ausgefallener Scheduler oder ein verschwundener Server erzeugt überhaupt keinen Fehler. Ein Heartbeat-Check pro Anwendung und eine Job-Historie, die Deploys übersteht, beantworten sie.

    Monitoring-Glossar QueueHawk kostenlos testen →

    Wissen, wenn ein geplanter Job nicht gelaufen ist

    Heartbeat- und Fehlerraten-Alerts für wiederkehrende Hangfire-Jobs. Kostenlos für eine Application.

    Kostenlos starten