Abstraktes Header-Bild in den Farben von tsjdev apps

Blogbeitrag

Cronjobs in Azure Functions: Zeitgesteuerte Aufgaben mit dem TimerTrigger ausführen

Zeitgesteuerte Prozesse gehören zu den häufigsten Anforderungen in modernen Anwendungen – sei es zum täglichen Versenden von Berichten, zum nächtlichen Datenabgleich oder zur periodischen Bereinigung von Dateien. In Azure Functions lässt sich dies elegant über den TimerTrigger realisieren – auf Basis von Cron-Ausdrücken.

In diesem Beitrag erfährst du:

  • Wie Cron-Ausdrücke in Azure Functions funktionieren
  • Welche Besonderheiten im Vergleich zu klassischen Unix-Cronjobs gelten
  • Wie man wiederkehrende Zeitpläne richtig berechnet
  • Und wie du eine Azure Function per TimerTrigger zeitgesteuert ausführst

🔁 Was ist ein Cronjob?

Ein Cronjob ist ein wiederkehrender, geplanter Task. In Linux-Systemen erfolgt die Steuerung über den sogenannten Cron-Daemon, der Jobs zu vordefinierten Zeiten ausführt – gesteuert über einen sogenannten Cron-Ausdruck.

Auch Azure Functions unterstützen solche geplanten Aufgaben – allerdings über die serverlose TimerTrigger-Bindung, die nach dem Cron-Prinzip funktioniert.

📌 Unterschiede zwischen klassischem Cron und Azure Functions

Merkmal Klassischer Cron Azure Functions TimerTrigger
Anzahl Felder 5 (Minute bis Wochentag) 6 (Sekunde bis Wochentag)
Zeitzone Systemzeit Standardmäßig UTCUmgebungUnix/LinuxServerless Cloud (Azure)
Syntax-Empfehlung * * * * * 0 */5 * * * *

🧠 Aufbau eines Cron-Ausdrucks in Azure Functions

In Azure Functions wird ein Cron-Ausdruck immer in sechs Felder unterteilt:

{Sekunde} {Minute} {Stunde} {Tag} {Monat} {Wochentag}

Beispiel

[TimerTrigger("0 30 3 * * *")]

Diese Funktion wird täglich um 3:30:00 Uhr (UTC) ausgeführt.

📚 Bedeutung der Felder

Feld Wertebereich Beschreibung
Sekunde 0-59 Wann innerhalb der Minute starten
Minute 0-59 Minute der Stunde
Stunde 0-23 Stunde des Tages
Tag 1-31 Tag des Monats
Monat 1-12 Monat
Wochentag 0-6 Wochentag (So=0, …, Sa=6)

⏲️ TimerTrigger in einer Azure Function verwenden

Hier ein vollständiges Beispiel für eine Azure Function in C# mit TimerTrigger:

using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;

namespace TimeTriggerTestAzureFunction;

public class MyTimeTriggerFunction
{
    private readonly ILogger _logger;

    public MyTimeTriggerFunction(
        ILoggerFactory loggerFactory)
    {
        _logger
            = loggerFactory
                .CreateLogger<MyTimeTriggerFunction>();
    }

    [Function("MyTimeTriggerFunction1")]
    public void Run(
        [TimerTrigger("0 0 6 * * 1")] TimerInfo myTimer)
    {
        _logger
            .LogInformation(
                $"C# Timer trigger function executed at: " +
                $"{DateTime.Now}");

        if (myTimer.ScheduleStatus is not null)
        {
            _logger
                .LogInformation(
                    $"Next timer schedule at: " +
                    $"{myTimer.ScheduleStatus.Next}");
        }
    }
}

🔍 Erklärung

  • "0 0 6 * * 1" = jeden Montag um 6:00:00 Uhr UTC
  • TimerInfo liefert nützliche Infos wie die nächste geplante Ausführung

🧮 Beispiele für Cron-Ausdrücke

Beschreibung Cron-Ausdruck
Alle 5 Minuten 0 */5 * * * *
Jeden Tag um 12:30 Uhr (UTC) 0 30 12 * * *
Jeden Sonntag um 23:45 Uhr 0 45 23 * * 0
Jeden Werktag um 6:00 Uhr 0 0 6 * * 1-5
Jeden Monat am 1. um Mitternacht 0 0 0 1 * *

📌 Hinweis: Alle Zeiten sind in UTC angegeben! Wenn du mit lokalen Zeitzonen arbeiten möchtest, siehe unten.

🌍 Zeitzone anpassen (z. B. auf Europa/Berlin)

Standardmäßig verwendet Azure Functions die UTC-Zeitzone. Um eine andere Zeitzone zu nutzen, kannst du die App-Einstellung setzen:

WEBSITE_TIME_ZONE = Europe/Berlin

🛠️ Tipps & Best Practices

Teste deine Cron-Ausdrücke mit Tools wie: crontab.guru

📌 Kommentiere Cron-Ausdrücke in deinem Code oder deiner Doku

⏱️ Beachte, dass der TimerTrigger nicht sofort bei Deployment oder Scale-Out startet – plane Initialzeit ggf. ein.

🚫 Wenn eine Ausführung fehlschlägt, gibt es keinen automatischen Retry! Plane Logging oder Monitoring ein.

📦 Fazit

Cron-Ausdrücke ermöglichen eine elegante Steuerung wiederkehrender Aufgaben. In Azure Functions gelingt das durch den TimerTrigger – mit nur wenigen Zeilen Code kannst du deine Funktionen täglich, wöchentlich oder im Minutentakt ausführen lassen.

Wenn du die sechs Felder richtig interpretierst, auf die UTC-Zeit achtest und die nötige App-Einstellung für die Zeitzone setzt, hast du ein mächtiges Werkzeug zur Hand – ohne eigene Infrastruktur.

Weiterempfehlen

Diesen Beitrag teilen

Wenn dir der Beitrag gefallen hat: gern weiterreichen. Gute Links dürfen sich ruhig schnell verbreiten.

Vorheriger/Nächster Beitrag

PicCaptionr: Erstelle Instagram-taugliche Bildunterschriften mit KI Vorheriger Beitrag PicCaptionr: Erstelle Instagram-taugliche Bildunterschriften mit KI Meine .NET MAUI Controls Library – jetzt auf NuGet verfügbar! Nächster Beitrag Meine .NET MAUI Controls Library – jetzt auf NuGet verfügbar!
Flags Quiz - Ein interaktives Flaggen-Quiz mit HTML, JavaScript und Bulma Flags Quiz - Ein interaktives Flaggen-Quiz mit HTML, JavaScript und Bulma Sicherheitslücken in verwendeten NuGet-Paketen finden Sicherheitslücken in verwendeten NuGet-Paketen finden Windows Terminal unter Windows 11 mit Oh-My-Posh einrichten Windows Terminal unter Windows 11 mit Oh-My-Posh einrichten GitHub Actions lokal testen mit Act GitHub Actions lokal testen mit Act
Lust auf ein kurzes digitales Hallo? Wenn du eine Idee teilen, eine Frage loswerden oder ein Projekt anschieben willst: mein Posteingang ist deutlich zuverlässiger als Brieftauben. apps@tsjdev-apps.de Mail schicken