Dela via


Köra bakgrundsaktiviteter med WebJobs

Den här artikeln beskriver hur du distribuerar webbjobb med hjälp av Azure-portalen för att ladda upp en körbar fil eller ett skript. 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. Alla App Service-planer har stöd för webbjobb. Det finns ingen extra kostnad för att använda webbjobb.

Ö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. Alla App Service-planer har stöd för webbjobb. Det finns ingen extra kostnad för att använda webbjobb.

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

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 rätt integrerings- och automatiseringstjänster i Azure.

Typer av webbjobb

Filtyper som stöds för skript eller program

Viktigt!

WebJobs stöds inte i anpassade Linux-containrar baserat på Alpine Linux, inklusive Linux-appar som använder Java 8- och Java 11-körningsstackar. Från och med Java 17 Linux-appar använder Azure App Service icke-Alpine-baserade bilder, som är kompatibla med WebJobs.

Följande filtyper stöds:

  • Använd Windows cmd: .cmd, .bat, .exe
  • Använda PowerShell: .ps1
  • Att använda Bash: .sh
  • Använda Node.js: .js
  • Använda Java: .jar

De nödvändiga körmiljöerna som behövs för dessa filtyper är redan installerade på webbapplikationsinstansen.

Kontinuerlig jämfört med utlösta webbjobb

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

Kontinuerlig Aktiverad
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 implementeras under \site\wwwroot\app_data\Jobs\Continuous. Kod implementeras under \site\wwwroot\app_data\Jobs\Triggered.

Anmärkning

En webbapp kan stängas av efter 20 minuters inaktivitet, och endast begäranden till själva webbappen kan starta om timern. Om du visar appens konfiguration i Azure-portalen eller skickar begäranden till webbplatsen för avancerade verktyg å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å i webbappens Azure-konfigurationsfönster . Inställningen Always on hjälper dig 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. Under Inställningar 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 flera instanser för en App Service-app.

    Inställning Exempelvärde Beskrivning
    Namn myContinuousWebJob Ett unikt webbjobbsnamn. 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 Kontinuerlig 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. Under Inställningar 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 unikt webbjobbsnamn. 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 Aktiverad Webbjobbstyperna beskrivs tidigare i den här artikeln.
    Utlösare Handbok
  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 så att utlösaren inträffar 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. Under Inställningar 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 unikt webbjobbsnamn. 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 Aktiverad Webbjobbstyperna beskrivs tidigare i den här artikeln.
    Utlösare Schemalagd 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

Ett NCRONTAB-uttryck liknar ett CRON-uttryck, men innehåller ytterligare ett sjätte fält i början för tidsprecision i sekunder. 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.

Anmärkning

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 statusen för enskilda Azure WebJobs som körs på din webbplats med hjälp av Azure-portalen. Gå till Inställningar>Webbjobb, välj Webbjobb 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å konfigurera en appinställning med namnet WEBJOBS_STOPPED med värdet 1 för för att stoppa alla webbjobb som körs på din webbplats. Du kan använda den här metoden för att förhindra att konflikterande WebJobs körs både i mellanlagrings- och produktionsmiljöer. Du kan på samma sätt använda värdet 1 för inställningen WEBJOBS_DISABLE_SCHEDULE för att inaktivera utlösta webbjobb på webbplatsen eller en staging slot. För platser ska du komma ihåg att aktivera alternativet Inställning för distributionsplats 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.

Webbjobbstatus

Följande är en lista över vanliga webbjobbstillstånd:

  • Initiering: Appen har startats och webbjobbet genomgår initieringsprocessen.
  • Startar: Webbjobbet startar.
  • Körs: 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åminutersgränsen, väntar App Service inte de 60 sekunderna utan startar om webbjobbet omedelbart.
  • Stoppad: 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.
  • Avbröts: Detta kan inträffa av många orsaker, till exempel när ett långvarigt webbjobb når tidsgränsmarkören.

Nästa steg

Självstudie: Köra bakgrundsprocesser med WebJobs