Delen via


Achtergrondtaken uitvoeren met WebJobs

In dit artikel wordt uitgelegd hoe u WebJobs implementeert met behulp van Azure Portal om een uitvoerbaar bestand of script te uploaden. 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.

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.

Als u Visual Studio gebruikt in plaats van Azure App Service om webtaken te ontwikkelen en te implementeren, raadpleegt u Webtaken ontwikkelen en implementeren met Visual Studio.

Azure Functions biedt een andere manier om programma's en scripts uit te voeren. Zie De juiste integratie- en automatiseringsservices in Azure kiezen voor een vergelijking tussen WebJobs en Functions.

WebJob-typen

Ondersteunde bestandstypen voor scripts of programma's

Belangrijk

WebJobs worden niet ondersteund in aangepaste Linux-containers op basis van Alpine Linux, inclusief Linux-apps die gebruikmaken van Java 8- en Java 11-runtimestacks. Vanaf Linux-apps met Java 17 maakt Azure App Service gebruik van niet-Alpine-gebaseerde afbeeldingen, die compatibel zijn met WebJobs.

De volgende bestandstypen worden ondersteund:

  • Windows cmd gebruiken: .cmd, .bat, .exe
  • PowerShell gebruiken: .ps1
  • Bash gebruiken: .sh
  • Met Node.js: .js
  • Java gebruiken: .jar

De benodigde runtimes om deze bestandstypen uit te voeren, zijn al geïnstalleerd op het web-app-exemplaar.

Doorlopende versus uitgelokte WebJobs

In de volgende tabel worden de verschillen tussen continue en geactiveerde webtaken beschreven.

Doorlopend 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. Als u de configuratie van de app in Azure Portal bekijkt of aanvragen indient naar de site met geavanceerde hulpprogramma's, wordt de timer niet opnieuw ingesteld. 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 in het deelvenster Azure-configuratie van uw web-app. Met de instelling AlwaysOn kunt u ervoor zorgen dat dit soort webtaken betrouwbaar worden 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.

  1. Ga in Azure Portal naar de App Service-pagina van uw App Service-web-app, API-app of mobiele app.

  2. Selecteer webtaken onder Instellingen in het linkerdeelvenster en selecteer vervolgens Toevoegen.

    Schermopname van het toevoegen van een webtaak in een App Service-app in de portal.

  3. Vul de instellingen voor webtaak toevoegen in zoals opgegeven in de tabel en selecteer vervolgens Webtaak maken.

    Schermopname die laat zien hoe je een multi-instance continue webtaak configureert voor een App Service-app.

    Instelling Voorbeeldwaarde Beschrijving
    Naam mijnDoorlopendeWebopdracht Een unieke webtaaknaam. Moet beginnen met een letter of cijfer 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 .
    Typ Doorlopend De WebJob-typen zijn eerder in dit artikel beschreven.
    Schaal wijzigen Meerdere instanties Alleen beschikbaar voor Continuous WebJobs. 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.
  4. 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.

  5. 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.

    Schermopname van het stoppen van een doorlopende webtaak in Azure Portal.

Een handmatig geactiveerde webtaak maken

  1. Ga in Azure Portal naar de App Service-pagina van uw App Service-web-app, API-app of mobiele app.

  2. Selecteer webtaken onder Instellingen in het linkerdeelvenster en selecteer vervolgens Toevoegen.

    Schermopname van het toevoegen van een webtaak in een App Service-app in de portal (handmatig geactiveerde webtaak).

  3. Vul de instellingen voor webtaak toevoegen in zoals opgegeven in de tabel en selecteer vervolgens Webtaak maken.

    Schermopname van het configureren van een handmatig geactiveerde webtaak voor een App Service-app.

    Instelling Voorbeeldwaarde Beschrijving
    Naam myTriggeredWebJob Een unieke webtaaknaam. Moet beginnen met een letter of cijfer 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 .
    Typ Geactiveerd De WebJob-typen worden eerder in dit artikel beschreven.
    Triggermomenten Handmatig
  4. 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.

  5. 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.

    Schermopname van het uitvoeren van een handmatig geactiveerde webtaak in Azure Portal.

Een geplande webtaak maken

Er wordt ook een geplande webtaak geïnitieerd. U kunt plannen dat de trigger automatisch wordt uitgevoerd volgens de planning die u opgeeft.

  1. Ga in Azure Portal naar de App Service-pagina van uw App Service-web-app, API-app of mobiele app.

  2. Selecteer webtaken onder Instellingen in het linkerdeelvenster en selecteer vervolgens Toevoegen.

    Schermopname van het toevoegen van een webtaak in een App Service-app in de portal (geplande webtaak).

  3. Vul de instellingen voor webtaak toevoegen in zoals opgegeven in de tabel en selecteer vervolgens Webtaak maken.

    Schermopname van het configureren van een geplande webtaak in een App Service-app.

    Instelling Voorbeeldwaarde Beschrijving
    Naam mijnGeplandeWebTaak Een unieke webtaaknaam. Moet beginnen met een letter of cijfer 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 .
    Typ Geactiveerd De WebJob-typen zijn eerder in dit artikel beschreven.
    Triggermomenten 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.
  4. 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.

  5. 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.

    Schermopname van het uitvoeren van een handmatig geplande webtaak in Azure Portal.

NCRONTAB-expressies

Een NCRONTAB-expressie is vergelijkbaar met een CRON-expressie, maar bevat een extra zesde veld aan het begin voor tijdsprecisie in seconden. U kunt een NCRONTAB-expressie invoeren in de portal of een settings.job bestand toevoegen in de hoofdmap van uw WebJob .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 uitvoeringsstatus beheren van afzonderlijke webtaken die op uw site worden uitgevoerd met behulp van 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 app-instelling met de naam WEBJOBS_STOPPED configureren 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 WebJobs zowel in de staging- als de productieslots worden uitgevoerd. U kunt een waarde van 1 voor de WEBJOBS_DISABLE_SCHEDULE-instelling gebruiken om op dezelfde manier getriggerde webtaken op de site of op een staging-slot uit te schakelen. Voor implementatieslots moet u de optie Implementatieslot-instelling inschakelen, zodat de instelling zelf niet wordt omgewisseld.

De taakgeschiedenis weergeven

  1. Selecteer Logboeken voor de webtaak die u wilt zien.

    Schermopname van het openen van logboeken voor een webtaak.

  2. Selecteer op de pagina Webtaakdetails een tijd om details voor één uitvoering weer te geven.

    Schermopname van het kiezen van een webtaakuitvoering om de gedetailleerde logboeken te bekijken.

  3. Op de pagina Details van webtaakuitvoering kunt u downloaden selecteren om een tekstbestand van de logboeken op te halen of de WebJobs-breadcrumb koppeling boven aan de pagina selecteren om logboeken voor een andere webtaak weer te geven.

Webtaak-status

Hier volgt een lijst met algemene webtaakstatussen:

  • Initialiseren: de app is gestart en de webtaak doorloopt het initialisatieproces.
  • Starten: De webtaak wordt gestart.
  • Actief: De WebJob is aan het draaien.
  • 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 na twee minuten wordt afgesloten, wacht App Service niet 60 seconden en start de webtaak onmiddellijk opnieuw op.
  • 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 continue of geplande webtaak.
  • Afgebroken: Dit kan om vele redenen gebeuren, zoals wanneer een langlopende webtaak de tijdslimiet bereikt.

Volgende stap

Zelfstudie: Achtergrondtaken uitvoeren met WebJobs