Köra bakgrundsaktiviteter med webbjobb i Azure App Service
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.
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.
Ö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.
Kommentar
Från och med den 1 juni 2024 har alla nyligen skapade App Service-appar möjlighet att generera ett unikt standardvärdnamn med hjälp av namngivningskonventionen <app-name>-<random-hash>.<region>.azurewebsites.net
. Befintliga appnamn förblir oförändrade.
Exempel: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Mer information finns i Unikt standardvärdnamn för App Service-resurs.
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.
I Azure-portalen går du till App Service-sidan för din App Service-webbapp, API-app eller mobilapp.
I den vänstra rutan väljer du Webbjobb och sedan Lägg till.
Fyll i inställningarna för Lägg till webbjobb enligt tabellen och välj sedan Skapa webbjobb.
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. 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.
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.
Skapa ett manuellt utlöst webbjobb
I Azure-portalen går du till App Service-sidan för din App Service-webbapp, API-app eller mobilapp.
I den vänstra rutan väljer du Webbjobb och sedan Lägg till.
Fyll i inställningarna för Lägg till webbjobb enligt tabellen och välj sedan Skapa webbjobb.
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 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.
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.
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.
I Azure-portalen går du till App Service-sidan för din App Service-webbapp, API-app eller mobilapp.
I den vänstra rutan väljer du Webbjobb och sedan Lägg till.
Fyll i inställningarna för Lägg till webbjobb enligt tabellen och välj sedan Skapa webbjobb.
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. 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.
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.
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>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å 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
För det webbjobb som du vill se väljer du Loggar.
På sidan Webbjobbsinformation väljer du en tid för att se information för en körning.
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.