Achtergrondtaken uitvoeren met WebJobs in Azure-app Service
Implementeer WebJobs met behulp van Azure Portal om een uitvoerbaar bestand of script te uploaden. U kunt achtergrondtaken uitvoeren in de Azure-app Service.
Als u in plaats van de Azure-app Service Visual Studio gebruikt om WebJobs te ontwikkelen en implementeren, raadpleegt u WebJobs implementeren met Visual Studio.
Notitie
WebJobs voor Windows-container, Linux-code en Linux-container is in preview. WebJobs voor Windows-code is algemeen beschikbaar en niet in preview.
Overzicht
WebJobs is een functie van Azure-app Service waarmee u een programma of script kunt uitvoeren in hetzelfde exemplaar als een web-app. Alle app-serviceplannen ondersteunen WebJobs. Er zijn geen extra kosten verbonden aan het gebruik van WebJobs.
Notitie
Vanaf 1 juni 2024 hebben alle nieuw gemaakte App Service-apps de mogelijkheid om een unieke standaardhostnaam te genereren met behulp van de naamconventie <app-name>-<random-hash>.<region>.azurewebsites.net
. Bestaande app-namen blijven ongewijzigd.
Voorbeeld: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Raadpleeg de unieke standaardhostnaam voor App Service-resource voor meer informatie.
U kunt de Azure WebJobs SDK met WebJobs gebruiken om veel programmeertaken te vereenvoudigen. Zie Wat is de WebJobs SDK voor meer informatie.
Azure Functions biedt een andere manier om programma's en scripts uit te voeren. Zie Kiezen tussen Flow, Logic Apps, Functions en WebJobs voor een vergelijking tussen WebJobs en Functions.
Typen webtaken
Ondersteunde bestandstypen voor scripts of programma's
De volgende bestandstypen worden ondersteund:
.cmd, .bat, .exe (met windows cmd)
.ps1 (met behulp van PowerShell)
.sh (met Bash)
.php (met PHP)
.py (met behulp van Python)
.js (met behulp van Node.js)
.jar (met Java)
De benodigde runtimes om deze bestandstypen uit te voeren, zijn al geïnstalleerd op het web-app-exemplaar.
Doorlopende versus geactiveerde webtaken
In de volgende tabel worden de verschillen tussen continue en geactiveerde webtaken beschreven:
Continu | Geactiveerd |
---|---|
Wordt onmiddellijk gestart wanneer de webtaak wordt gemaakt. Om te voorkomen dat de taak eindigt, werkt het programma of script meestal in een eindeloze lus. Als de taak wordt beëindigd, kunt u deze opnieuw starten. Meestal gebruikt met WebJobs SDK. | Wordt alleen gestart wanneer deze handmatig of volgens een schema wordt geactiveerd. |
Wordt uitgevoerd op alle exemplaren waarop de web-app wordt uitgevoerd. U kunt de webtaak desgewenst beperken tot één exemplaar. | Wordt uitgevoerd op één exemplaar dat Azure selecteert voor taakverdeling. |
Biedt ondersteuning voor externe foutopsporing. | Biedt geen ondersteuning voor foutopsporing op afstand. |
Code wordt geïmplementeerd onder \site\wwwroot\app_data\Jobs\Continuous . |
Code wordt geïmplementeerd onder \site\wwwroot\app_data\Jobs\Triggered . |
Notitie
Een web-app kan een time-out uitvoeren na 20 minuten inactiviteit en alleen aanvragen voor de werkelijke web-app kunnen de timer opnieuw instellen. De timer wordt niet gereset als de configuratie van de toepassing in de Azure-portal wordt bekeken of als aanvragen worden ingediend op de pagina met geavanceerde hulpmiddelen (https://<app_name>.scm.azurewebsites.net
). Als u de web-app instelt die als host fungeert voor het continu uitvoeren van uw taak, wordt uitgevoerd volgens een schema of gebeurtenisgestuurde triggers gebruikt, schakelt u de instelling Altijd in op de Azure-configuratiepagina van uw web-app. De instelling AlwaysOn helpt ervoor te zorgen dat dit soort webtaken betrouwbaar wordt uitgevoerd. Deze functie is alleen beschikbaar in de prijscategorieën Basic, Standard en Premium.
Een doorlopende webtaak maken
Belangrijk
Wanneer u broncodebeheer voor uw toepassing hebt geconfigureerd, moeten webtaken worden geïmplementeerd als onderdeel van de integratie van broncodebeheer. Nadat broncodebeheer is geconfigureerd voor uw toepassing, kan een webtaak niet worden toegevoegd vanuit Azure Portal.
Ga in Azure Portal naar de App Service-pagina van uw App Service-web-app, API-app of mobiele app.
Selecteer webtaken in het linkerdeelvenster en selecteer vervolgens Toevoegen.
Vul de instellingen voor webtaken toevoegen in zoals opgegeven in de tabel en selecteer Vervolgens Webtaak maken.
Instelling Voorbeeldwaarde Beschrijving Naam myContinuousWebJob Een naam die uniek is binnen een App Service-app. Moet beginnen met een letter of een getal en mag geen speciale tekens bevatten dan '-' en '_'. Bestand uploaden ConsoleApp.zip Een .zip-bestand met het uitvoerbare bestand of scriptbestand en eventuele ondersteunende bestanden die nodig zijn om het programma of script uit te voeren. De ondersteunde uitvoerbare of scriptbestandstypen worden weergegeven in de sectie Ondersteunde bestandstypen . Type Continu De typen webtaken worden eerder in dit artikel beschreven. Schaal wijzigen Meerdere exemplaren Alleen beschikbaar voor continue webtaken. Bepaalt of het programma of script wordt uitgevoerd op alle exemplaren of één exemplaar. De optie voor uitvoering op meerdere exemplaren is niet van toepassing op de prijscategorieën Gratis of Gedeeld. De nieuwe webtaak wordt weergegeven op de pagina WebJobs . Als u een bericht ziet met de mededeling dat de webtaak is toegevoegd, maar u deze niet ziet, selecteert u Vernieuwen.
Als u een doorlopende webtaak wilt stoppen of opnieuw wilt starten, klikt u met de rechtermuisknop op de webtaak in de lijst en selecteert u de knop Stoppen of Uitvoeren en bevestigt u de selectie.
Een handmatig geactiveerde webtaak maken
Ga in Azure Portal naar de App Service-pagina van uw App Service-web-app, API-app of mobiele app.
Selecteer webtaken in het linkerdeelvenster en selecteer vervolgens Toevoegen.
Vul de instellingen voor webtaken toevoegen in zoals opgegeven in de tabel en selecteer Vervolgens Webtaak maken.
Instelling Voorbeeldwaarde Beschrijving Naam myTriggeredWebJob Een naam die uniek is binnen een App Service-app. Moet beginnen met een letter of een getal en mag geen speciale tekens bevatten dan '-' en '_'. Bestand uploaden ConsoleApp1.zip Een .zip-bestand met het uitvoerbare bestand of scriptbestand en eventuele ondersteunende bestanden die nodig zijn om het programma of script uit te voeren. De ondersteunde uitvoerbare of scriptbestandstypen worden weergegeven in de sectie Ondersteunde bestandstypen . Type Geactiveerd De typen webtaken worden eerder in dit artikel beschreven. Triggers Handmatig De nieuwe webtaak wordt weergegeven op de pagina WebJobs . Als u een bericht ziet met de mededeling dat de webtaak is toegevoegd, maar u deze niet ziet, selecteert u Vernieuwen.
Als u een handmatig geactiveerde webtaak wilt uitvoeren, klikt u met de rechtermuisknop op de webtaak in de lijst en selecteert u de knop Uitvoeren en bevestigt u de selectie.
Een geplande webtaak maken
Er wordt ook een geplande webtaak geactiveerd. U kunt plannen dat de trigger automatisch wordt uitgevoerd volgens de planning die u opgeeft.
Ga in Azure Portal naar de App Service-pagina van uw App Service-web-app, API-app of mobiele app.
Selecteer webtaken in het linkerdeelvenster en selecteer vervolgens Toevoegen.
Vul de instellingen voor webtaken toevoegen in zoals opgegeven in de tabel en selecteer Vervolgens Webtaak maken.
Instelling Voorbeeldwaarde Beschrijving Naam myScheduledWebJob Een naam die uniek is binnen een App Service-app. Moet beginnen met een letter of een getal en mag geen speciale tekens bevatten dan '-' en '_'. Bestand uploaden ConsoleApp.zip Een .zip-bestand met het uitvoerbare bestand of scriptbestand en eventuele ondersteunende bestanden die nodig zijn om het programma of script uit te voeren. De ondersteunde uitvoerbare of scriptbestandstypen worden weergegeven in de sectie Ondersteunde bestandstypen . Type Geactiveerd De typen webtaken worden eerder in dit artikel beschreven. Triggers Gepland Schakel de Functie AlwaysOn in om de planning betrouwbaar te laten werken. AlwaysOn is alleen beschikbaar in de prijscategorieën Basic, Standard en Premium. CRON-expressie 0 0/20 * * * * CRON-expressies worden beschreven in de volgende sectie. De nieuwe webtaak wordt weergegeven op de pagina WebJobs . Als u een bericht ziet met de mededeling dat de webtaak is toegevoegd, maar u deze niet ziet, selecteert u Vernieuwen.
De geplande webtaak wordt uitgevoerd volgens het schema dat is gedefinieerd door de CRON-expressie. Als u deze handmatig op elk gewenst moment wilt uitvoeren, klikt u met de rechtermuisknop op de webtaak in de lijst en selecteert u de knop Uitvoeren en bevestigt u de selectie.
NCRONTAB-expressies
U kunt een NCRONTAB-expressie invoeren in de portal of een settings.job
bestand opnemen in de hoofdmap van uw webtaak .zip bestand, zoals in het volgende voorbeeld:
{
"schedule": "0 */15 * * * *"
}
Zie Een geactiveerde webtaak plannen voor meer informatie.
Notitie
De standaardtijdzone die wordt gebruikt om CRON-expressies uit te voeren, is Coordinated Universal Time (UTC). Als u wilt dat uw CRON-expressie wordt uitgevoerd op basis van een andere tijdzone, maakt u een app-instelling voor de functie-app met de naam WEBSITE_TIME_ZONE. Zie NCRONTAB-tijdzones voor meer informatie.
Webjobs beheren
U kunt de actieve status van afzonderlijke webtaken die op uw site worden uitgevoerd, beheren in Azure Portal. Ga naar Instellingen>WebJobs, kies de webtaak en u kunt de webtaak starten en stoppen. U kunt ook het wachtwoord bekijken en wijzigen van de webhook waarop de webtaak wordt uitgevoerd.
U kunt ook een toepassingsinstelling met de naam WEBJOBS_STOPPED
toevoegen met de waarde 1
om alle webtaken die op uw site worden uitgevoerd, te stoppen. U kunt deze methode gebruiken om te voorkomen dat conflicterende webtaken worden uitgevoerd in faserings- en productiesites. U kunt op dezelfde manier een waarde voor 1
de WEBJOBS_DISABLE_SCHEDULE
instelling gebruiken om geactiveerde webtaken op de site of een staging-site uit te schakelen. Voor sites moet u de optie Implementatiesite-instelling inschakelen, zodat de instelling zelf niet wordt gewisseld.
De taakgeschiedenis weergeven
Selecteer Logboeken voor de webtaak die u wilt zien.
Selecteer op de pagina Webtaakdetails een tijd om details voor één uitvoering weer te geven.
Op de pagina Details van webtaakuitvoering kunt u downloaden selecteren om een tekstbestand van de logboeken op te halen of de koppeling WebJobs-breadcrumb boven aan de pagina selecteren om logboeken voor een andere webtaak weer te geven.
Statussen van webtaken
Hier volgt een lijst met algemene webtaakstatussen:
- Het initialiseren van de app is gestart en de webtaak doorloopt het initialisatieproces.
- De webtaak wordt gestart.
- De webtaak wordt uitgevoerd.
- PendingRestart Een doorlopende webtaak wordt in minder dan twee minuten afgesloten omdat deze om welke reden dan ook is gestart en App Service wacht 60 seconden voordat de webtaak opnieuw wordt gestart. Als de doorlopende webtaak wordt afgesloten na de markering van twee minuten, wacht App Service niet de 60 seconden en start de webtaak onmiddellijk opnieuw.
- Gestopt De webtaak is gestopt (meestal vanuit Azure Portal) en wordt momenteel niet uitgevoerd en wordt pas uitgevoerd als u deze handmatig opnieuw start, zelfs voor een doorlopende of geplande webtaak.
- Dit kan om veel redenen gebeuren, bijvoorbeeld wanneer een langlopende webtaak de time-outmarkering bereikt.
Volgende stappen
De Azure WebJobs SDK kan worden gebruikt met WebJobs om veel programmeertaken te vereenvoudigen. Zie Wat is de WebJobs SDK voor meer informatie.