Azure WebJobs

Allgemeine Infos

WebJobs sind Teil von Azure App Service und führen ein Programm oder Skript auf denselben Instanzen wie die Web-App aus. Typische Aufgaben sind nächtliche Bereinigungen, Exporte, Bildverarbeitung oder das Abarbeiten von Warteschlangen.

Es gibt zwei Typen: Kontinuierliche WebJobs starten sofort und laufen dauerhaft, meist als Schleife. Ausgelöste (Triggered) WebJobs starten manuell oder per Zeitplan im NCRONTAB-Format. WebJobs laufen laut Microsoft unter Windows und Linux, jeweils als Code oder Container. Nicht unterstützt sind Linux-Container auf Basis von Alpine, darunter Java-8- und Java-11-Apps unter Linux.

Abgrenzung: Azure Functions ist der eigenständige Dienst für ereignisgesteuerten Code mit eigener Skalierung und vielen Triggern. Functions baut auf dem WebJobs SDK auf. Für neue Szenarien ohne Bindung an eine bestehende Web-App ist Functions meist die bessere Wahl.

Funktionsweise & Details

Einrichtung und Betrieb:

  1. Du packst Skript oder Programm samt Abhängigkeiten in eine ZIP-Datei. Unterstützt werden unter anderem .cmd, .bat, .exe, .ps1, .sh, .js und .jar.
  2. Im Portal unter Einstellungen, WebJobs lädst Du die ZIP-Datei hoch und wählst den Typ.
  3. Für Zeitpläne nutzt Du einen NCRONTAB-Ausdruck mit sechs Feldern (Sekunde zuerst), etwa „0 */15 * * * *“ für alle 15 Minuten, alternativ per settings.job-Datei. Die Standardzeitzone ist UTC, WEBSITE_TIME_ZONE ändert sie.
  4. Kontinuierliche Jobs laufen standardmäßig auf allen Instanzen, ausgelöste Jobs auf einer von Azure gewählten Instanz.
  5. Protokolle und Status (Running, Stopped, PendingRestart) siehst Du im Portal.

Die App-Einstellung WEBJOBS_STOPPED=1 stoppt alle WebJobs einer App, etwa im Staging-Slot. Ist Quellcodeverwaltung für die App eingerichtet, müssen WebJobs über diese bereitgestellt werden.

Vorteile & Nutzen

  • Keine zusätzliche Infrastruktur, weil der Job auf den bereits bezahlten Instanzen des App-Service-Plans läuft.
  • Gleiche Konfiguration, Verbindungszeichenfolgen und Managed Identity wie die zugehörige Web-App.
  • Unterstützt gängige Skriptsprachen, sodass vorhandene PowerShell- oder Bash-Skripte oft ohne Umbau laufen.
  • Zeitpläne per NCRONTAB ersetzen geplante Aufgaben auf eigenen VMs.

Praxisbeispiel

Ein Großhändler für Sanitärbedarf mit 300 Mitarbeitenden betreibt seinen B2B-Shop in Azure App Service. Bisher exportierte eine VM jede Nacht per geplanter Aufgabe Preislisten in ein SFTP-Verzeichnis für Händler. Die IT verpackt das PowerShell-Skript als ausgelösten WebJob mit dem Zeitplan „0 0 2 * * *“, aktiviert Always On und setzt im Staging-Slot WEBJOBS_STOPPED=1. Die VM wird abgeschaltet, der Export läuft mit derselben Managed Identity wie der Shop.

Worauf sollte man achten?

  • Aktiviere Always On für kontinuierliche und zeitgesteuerte Jobs. Ohne Always On entlädt App Service die App nach etwa 20 Minuten Leerlauf und der Job läuft nicht zuverlässig. Always On gibt es erst ab Basic.
  • WebJobs teilen CPU und Speicher mit der Web-App. Rechenintensive Jobs gehören in einen eigenen Plan oder nach Azure Functions.
  • Stoppe WebJobs im Staging-Slot per WEBJOBS_STOPPED und markiere die Einstellung als Slot-Einstellung, sonst laufen Jobs doppelt.
  • Prüfe bei Linux-Apps das Basis-Image: Alpine-basierte Container unterstützen keine WebJobs.
  • Sammle Protokolle zentral, etwa über Application Insights, statt nur über die Portalansicht.

Lizenz & Verfügbarkeit

Ohne Zusatzkosten in allen App-Service-Plänen enthalten, auch in Free und Shared. Abgerechnet wird nur der App-Service-Plan über das Azure-Abonnement. Always On für zuverlässige Ausführung erfordert mindestens den Tarif Basic. Stand: Oktober 2026.

Fazit

WebJobs eignen sich für kleine Hintergrundaufgaben, die eng zu einer bestehenden Web-App gehören. Für neue, eigenständige Automatisierungen nimm Azure Functions.