Köra bakgrundsaktiviteter med webbjobb i Azure App Service

Kommentar

WebJobs för Windows-container, Linux-kod och Linux-container finns i förhandsversion. WebJobs för Windows-kod är allmänt tillgängligt och inte i förhandsversion.

Distribuera webbjobb med hjälp av Azure-portalen för att ladda upp en körbar fil eller ett skript. Du kan köra bakgrundsaktiviteter i Azure App Service.

Om du i stället för Azure App Service använder Visual Studio för att utveckla och distribuera webbjobb läser du Distribuera webbjobb med Visual Studio.

Översikt

WebJobs är en funktion i Azure App Service som gör att du kan köra ett program eller skript i samma instans som en webbapp. Det finns ingen extra kostnad för att använda webbjobb.

Du kan använda Azure WebJobs SDK med WebJobs för att förenkla många programmeringsuppgifter. Mer information finns i Vad är WebJobs SDK.

Med Azure Functions kan du köra program och skript på ett annat sätt. En jämförelse mellan WebJobs och Functions finns i Välj mellan Flow, Logic Apps, Functions och WebJobs.

Typer av webbjobb

Filtyper som stöds för skript eller program

Följande filtyper stöds:
.cmd, .bat, .exe (med Windows-cmd)
.ps1 (med PowerShell)
.sh (med Bash)
.php (med PHP)
.py (med Python)
.js (med Node.js)
.jar (med Java)

De körningskörningar som krävs för att köra dessa filtyper är redan installerade på webbappsinstansen.

Kontinuerlig jämfört med utlösta webbjobb

I följande tabell beskrivs skillnaderna mellan kontinuerliga och utlösta webbjobb:

Kontinuerligt Utlöst
Startar direkt när webbjobbet skapas. För att förhindra att jobbet slutar utför programmet eller skriptet vanligtvis sitt arbete i en oändlig loop. Om jobbet slutar kan du starta om det. Används vanligtvis med WebJobs SDK. Startar endast när det utlöses manuellt eller enligt ett schema.
Körs på alla instanser som webbappen körs på. Du kan också begränsa webbjobbet till en enda instans. Körs på en enda instans som Azure väljer för belastningsutjämning.
Stöder fjärrfelsökning. Stöder inte fjärrfelsökning.
Kod distribueras under \site\wwwroot\app_data\Jobs\Continuous. Kod distribueras under \site\wwwroot\app_data\Jobs\Triggered.

Kommentar

En webbapp kan överskrida tidsgränsen efter 20 minuters inaktivitet och endast begäranden till den faktiska webbappen kan återställa timern. När du visar appens konfiguration i Azure-portalen eller skickar begäranden till webbplatsen för avancerade verktyg (https://<app_name>.scm.azurewebsites.net) återställs inte timern. Om du anger att webbappen som är värd för ditt jobb ska köras kontinuerligt, köras enligt ett schema eller använda händelsedrivna utlösare aktiverar du inställningen Alltid på på webbappens Azure-konfigurationssida. Inställningen Alltid på hjälper till att se till att den här typen av webbjobb körs på ett tillförlitligt sätt. Den här funktionen är endast tillgänglig på prisnivåerna Basic, Standard och Premium.

Skapa ett kontinuerligt webbjobb

Viktigt!

När du har konfigurerat källkontroll för ditt program ska webbjobb distribueras som en del av källkontrollintegrering. När källkontrollen har konfigurerats för ditt program kan du inte lägga till ett webbjobb från Azure-portalen.

  1. I Azure-portalen går du till App Service-sidan för din App Service-webbapp, API-app eller mobilapp.

  2. I den vänstra rutan väljer du Webbjobb och sedan Lägg till.

    Skärmbild som visar hur du lägger till ett webbjobb i en App Service-app i portalen.

  3. Fyll i inställningarna för Lägg till webbjobb enligt tabellen och välj sedan Skapa webbjobb.

    Skärmbild som visar hur du konfigurerar ett kontinuerligt webbjobb för mult-instanser för en App Service-app.

    Inställning Exempelvärde Beskrivning
    Namn myContinuousWebJob Ett namn som är unikt i en App Service-app. Måste börja med en bokstav eller ett tal och får inte innehålla andra specialtecken än "-" och "_".
    Filuppladdning ConsoleApp.zip En .zip fil som innehåller din körbara fil eller skriptfil och eventuella stödfiler som behövs för att köra programmet eller skriptet. De körbara filtyperna eller skriptfiltyperna som stöds visas i avsnittet Filtyper som stöds.
    Typ Kontinuerligt Webbjobbstyperna beskrivs tidigare i den här artikeln.
    Skala Flera instanser Endast tillgängligt för kontinuerliga webbjobb. Avgör om programmet eller skriptet körs på alla instanser eller en instans. Alternativet att köra på flera instanser gäller inte för prisnivåerna Kostnadsfri eller Delad.
  4. Det nya webbjobbet visas på sidan Webbjobb . Om du ser ett meddelande om att webbjobbet har lagts till, men du inte ser det, väljer du Uppdatera.

  5. Om du vill stoppa eller starta om ett kontinuerligt webbjobb högerklickar du på webbjobbet i listan och väljer knappen Stoppa eller Kör och bekräftar sedan ditt val.

    Skärmbild som visar hur du stoppar ett kontinuerligt webbjobb i Azure-portalen.

Skapa ett manuellt utlöst webbjobb

  1. I Azure-portalen går du till App Service-sidan för din App Service-webbapp, API-app eller mobilapp.

  2. I den vänstra rutan väljer du Webbjobb och sedan Lägg till.

    Skärmbild som visar hur du lägger till ett webbjobb i en App Service-app i portalen (manuellt utlöst webbjobb).

  3. Fyll i inställningarna för Lägg till webbjobb enligt tabellen och välj sedan Skapa webbjobb.

    Skärmbild som visar hur du konfigurerar ett manuellt utlöst webbjobb för en App Service-app.

    Inställning Exempelvärde Beskrivning
    Namn myTriggeredWebJob Ett namn som är unikt i en App Service-app. Måste börja med en bokstav eller ett tal och får inte innehålla andra specialtecken än "-" och "_".
    Filuppladdning ConsoleApp1.zip En .zip fil som innehåller din körbara fil eller skriptfil och eventuella stödfiler som behövs för att köra programmet eller skriptet. De körbara filtyperna eller skriptfiltyperna som stöds visas i avsnittet Filtyper som stöds.
    Typ Utlöst Webbjobbstyperna beskrivs tidigare i den här artikeln.
    Utlösare Manuell
  4. Det nya webbjobbet visas på sidan Webbjobb . Om du ser ett meddelande om att webbjobbet har lagts till, men du inte ser det, väljer du Uppdatera.

  5. Om du vill köra ett manuellt utlöst webbjobb högerklickar du på webbjobbet i listan och väljer knappen Kör och bekräftar sedan ditt val.

    Skärmbild som visar hur du kör ett manuellt utlöst webbjobb i Azure-portalen.

Skapa ett schemalagt webbjobb

Ett schemalagt webbjobb utlöses också. Du kan schemalägga att utlösaren ska ske automatiskt enligt det schema som du anger.

  1. I Azure-portalen går du till App Service-sidan för din App Service-webbapp, API-app eller mobilapp.

  2. I den vänstra rutan väljer du Webbjobb och sedan Lägg till.

    Skärmbild som visar hur du lägger till ett webbjobb i en App Service-app i portalen (schemalagt webbjobb).

  3. Fyll i inställningarna för Lägg till webbjobb enligt tabellen och välj sedan Skapa webbjobb.

    Skärmbild som visar hur du konfigurerar ett schemalagt webbjobb i en App Service-app.

    Inställning Exempelvärde Beskrivning
    Namn myScheduledWebJob Ett namn som är unikt i en App Service-app. Måste börja med en bokstav eller ett tal och får inte innehålla andra specialtecken än "-" och "_".
    Filuppladdning ConsoleApp.zip En .zip fil som innehåller din körbara fil eller skriptfil och eventuella stödfiler som behövs för att köra programmet eller skriptet. De körbara filtyperna eller skriptfiltyperna som stöds visas i avsnittet Filtyper som stöds.
    Typ Utlöst Webbjobbstyperna beskrivs tidigare i den här artikeln.
    Utlösare Har schemalagts Aktivera funktionen AlwaysOn för att schemaläggningen ska fungera tillförlitligt. AlwaysOn är endast tillgängligt på prisnivåerna Basic, Standard och Premium.
    CRON-uttryck 0 0/20 * * * * CRON-uttryck beskrivs i följande avsnitt.
  4. Det nya webbjobbet visas på sidan Webbjobb . Om du ser ett meddelande om att webbjobbet har lagts till, men du inte ser det, väljer du Uppdatera.

  5. Det schemalagda webbjobbet körs enligt det schema som definieras av CRON-uttrycket. Om du vill köra den manuellt när som helst högerklickar du på webbjobbet i listan och väljer knappen Kör och bekräftar sedan ditt val.

    Skärmbild som visar hur du kör ett manuellt schemalagt webbjobb i Azure-portalen.

NCRONTAB-uttryck

Du kan ange ett NCRONTAB-uttryck i portalen eller inkludera en settings.job fil i roten på din WebJob -.zip-fil , som i följande exempel:

{
    "schedule": "0 */15 * * * *"
}

Mer information finns i Schemalägga ett utlöst webbjobb.

Kommentar

Standardtidszonen som används för att köra CRON-uttryck är Coordinated Universal Time (UTC). Om du vill att CRON-uttrycket ska köras baserat på en annan tidszon skapar du en appinställning för funktionsappen med namnet WEBSITE_TIME_ZONE. Mer information finns i NCRONTAB-tidszoner.

Hantera webbjobb

Du kan hantera körningstillståndet för enskilda webbjobb som körs på din webbplats i Azure-portalen. Gå till Inställningar> WebJobs, välj webbjobbet och du kan starta och stoppa webbjobbet. Du kan också visa och ändra lösenordet för webhooken som kör webbjobbet.

Du kan också lägga till en programinställning med namnet WEBJOBS_STOPPED med värdet 1 för för att stoppa alla webbjobb som körs på webbplatsen. Du kan använda den här metoden för att förhindra att webbjobb i konflikt körs både i mellanlagrings- och produktionsfack. Du kan på samma sätt använda värdet 1 för för inställningen WEBJOBS_DISABLE_SCHEDULE för att inaktivera utlösta webbjobb på webbplatsen eller ett mellanlagringsfack. För fack ska du komma ihåg att aktivera inställningsalternativet Distributionsfack så att själva inställningen inte byts ut.

Visa jobbhistoriken

  1. För det webbjobb som du vill se väljer du Loggar.

    Skärmbild som visar hur du kommer åt loggar för ett webbjobb.

  2. På sidan Webbjobbsinformation väljer du en tid för att se information för en körning.

    Skärmbild som visar hur du väljer en webbjobbskörning för att se dess detaljerade loggar.

  3. På sidan Kör information för webbjobb kan du välja ladda ned för att hämta en textfil för loggarna eller välja länken Webbjobbslänk längst upp på sidan för att se loggar för ett annat webbjobb.

Webbjobbsstatusar

Följande är en lista över vanliga webbjobbsstatusar:

  • Initiering Appen har startats och webbjobbet genomgår initieringsprocessen.
  • Starta Webbjobbet startas.
  • Körning av webbjobbet körs.
  • PendingRestart Ett kontinuerligt webbjobb avslutas på mindre än två minuter sedan det startade av någon anledning och App Service väntar 60 sekunder innan webbjobbet startas om. Om det kontinuerliga webbjobbet avslutas efter tvåminutersmarkeringen väntar Inte App Service de 60 sekunderna och startar om webbjobbet omedelbart.
  • Stoppade Webbjobbet stoppades (vanligtvis från Azure-portalen) och körs för närvarande inte och körs inte förrän du startar det igen manuellt, även för ett kontinuerligt eller schemalagt webbjobb.
  • Avbrutet Detta kan inträffa av många orsaker, till exempel när ett långvarigt webbjobb når tidsgränsmarkören.

Nästa steg

Azure WebJobs SDK kan användas med webbjobb för att förenkla många programmeringsuppgifter. Mer information finns i Vad är WebJobs SDK.