Spouštění úloh na pozadí pomocí webových úloh ve službě Aplikace Azure Service
Nasaďte webjobs pomocí webu Azure Portal k nahrání spustitelného souboru nebo skriptu. Úlohy na pozadí můžete spouštět ve službě Aplikace Azure Service.
Pokud místo služby Aplikace Azure používáte Visual Studio k vývoji a nasazování webových úloh, přečtěte si téma Nasazení webových úloh pomocí sady Visual Studio.
Poznámka:
Webové úlohy pro kontejner Windows, kód Linuxu a kontejner Linuxu jsou ve verzi Preview. Webové úlohy pro kód Windows jsou obecně dostupné a nejsou ve verzi Preview.
Přehled
WebJobs je funkce služby Aplikace Azure, která umožňuje spustit program nebo skript ve stejné instanci jako webová aplikace. Všechny plány služby App Service podporují webové úlohy. Používání webových úloh není nijak nákladné.
Poznámka:
Od 1. června 2024 budou mít všechny nově vytvořené aplikace App Service možnost vygenerovat jedinečný výchozí název hostitele pomocí zásad <app-name>-<random-hash>.<region>.azurewebsites.net
vytváření názvů . Stávající názvy aplikací zůstanou beze změny.
Příklad: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Další podrobnosti najdete v tématu Jedinečný výchozí název hostitele pro prostředek služby App Service.
Sadu Azure WebJobs SDK s webovými úlohami můžete použít ke zjednodušení mnoha programovacích úloh. Další informace naleznete v tématu Co je Sada WebJobs SDK.
Azure Functions nabízí další způsob spouštění programů a skriptů. Porovnání mezi WebJobs a Functions najdete v tématu Volba mezi toky, Logic Apps, Functions a WebJobs.
Typy webových úloh
Podporované typy souborů pro skripty nebo programy
Následující typy souborů jsou podporovány:
.cmd, .bat, .exe (pomocí nástroje Windows cmd)
.ps1 (pomocí PowerShellu)
.sh (pomocí bashe)
.php (pomocí PHP)
.py (pomocí Pythonu)
.js (pomocí Node.js)
.jar (pomocí Javy)
Potřebné moduly runtime pro spuštění těchto typů souborů jsou již nainstalovány v instanci webové aplikace.
Průběžné a aktivované webové úlohy
Následující tabulka popisuje rozdíly mezi průběžnými a aktivovanými webovými úlohami:
Průběžné | Aktivované |
---|---|
Spustí se okamžitě po vytvoření webové úlohy. Aby se úloha nekončila, program nebo skript obvykle funguje uvnitř nekonečné smyčky. Pokud úloha skončí, můžete ji restartovat. Obvykle se používá se sadou WebJobs SDK. | Spustí se pouze při ruční aktivaci nebo podle plánu. |
Spustí se na všech instancích, na které webová aplikace běží. Volitelně můžete webovou úlohu omezit na jednu instanci. | Běží na jedné instanci, kterou Azure vybere pro vyrovnávání zatížení. |
Podporuje vzdálené ladění. | Nepodporuje vzdálené ladění. |
Kód se nasadí v části \site\wwwroot\app_data\Jobs\Continuous . |
Kód se nasadí v části \site\wwwroot\app_data\Jobs\Triggered . |
Poznámka:
Webová aplikace může časový limit vyprší po 20 minutách nečinnosti a časovač může resetovat jenom požadavky na skutečnou webovou aplikaci. Zobrazení konfigurace aplikace na webu Azure Portal nebo provádění požadavků na webhttps://<app_name>.scm.azurewebsites.net
rozšířených nástrojů () nenuluje časovač. Pokud nastavíte webovou aplikaci, která hostuje vaši úlohu tak, aby běžela nepřetržitě, spouštěla podle plánu nebo používala triggery řízené událostmi, povolte nastavení AlwaysOn na stránce Konfigurace Azure vaší webové aplikace. Nastavení AlwaysOn pomáhá zajistit, aby tyto druhy webových úloh běžely spolehlivě. Tato funkce je dostupná jenom v cenových úrovních Basic, Standard a Premium.
Vytvoření průběžné webové úlohy
Důležité
Pokud máte pro aplikaci nakonfigurovanou správu zdrojového kódu, měly by se webové úlohy nasadit jako součást integrace správy zdrojového kódu. Po nakonfigurování správy zdrojového kódu pro vaši aplikaci se webová úloha nedá přidat z webu Azure Portal.
Na webu Azure Portal přejděte na stránku App Service vaší webové aplikace App Service , aplikace API nebo mobilní aplikace.
V levém podokně vyberte WebJobs a pak vyberte Přidat.
Vyplňte nastavení Přidat webovou úlohu, jak je uvedeno v tabulce, a pak vyberte Vytvořit webovou úlohu.
Nastavení Ukázková hodnota Popis Název myContinuousWebJob Název, který je jedinečný v rámci aplikace služby App Service. Musí začínat písmenem nebo číslicí a nesmí obsahovat jiné speciální znaky než "-" a "_". Nahrání souboru ConsoleApp.zip .zip soubor, který obsahuje váš spustitelný soubor nebo soubor skriptu a všechny podpůrné soubory potřebné ke spuštění programu nebo skriptu. Podporované typy souborů spustitelného souboru nebo skriptu jsou uvedeny v části Podporované typy souborů. Typ Průběžné Typy webových úloh jsou popsány výše v tomto článku. Měřítko Více instancí K dispozici pouze pro průběžné webové úlohy. Určuje, zda program nebo skript běží na všech instancích nebo jedné instanci. Možnost spuštění na více instancích se nevztahuje na cenové úrovně Free nebo Shared. Nová webová úloha se zobrazí na stránce WebJobs . Pokud se zobrazí zpráva s oznámením, že webová úloha byla přidána, ale nevidíte ji, vyberte Aktualizovat.
Chcete-li zastavit nebo restartovat nepřetržitou webovou úlohu, klikněte pravým tlačítkem myši na webovou úlohu v seznamu a vyberte tlačítko Zastavit nebo Spustit a potvrďte výběr.
Vytvoření ručně aktivované webové úlohy
Na webu Azure Portal přejděte na stránku App Service vaší webové aplikace App Service , aplikace API nebo mobilní aplikace.
V levém podokně vyberte WebJobs a pak vyberte Přidat.
Vyplňte nastavení Přidat webovou úlohu, jak je uvedeno v tabulce, a pak vyberte Vytvořit webovou úlohu.
Nastavení Ukázková hodnota Popis Název myTriggeredWebJob Název, který je jedinečný v rámci aplikace služby App Service. Musí začínat písmenem nebo číslicí a nesmí obsahovat jiné speciální znaky než "-" a "_". Nahrání souboru ConsoleApp1.zip .zip soubor, který obsahuje váš spustitelný soubor nebo soubor skriptu a všechny podpůrné soubory potřebné ke spuštění programu nebo skriptu. Podporované typy souborů spustitelného souboru nebo skriptu jsou uvedeny v části Podporované typy souborů. Typ Aktivované Typy webových úloh jsou popsány výše v tomto článku. Triggery Ruční Nová webová úloha se zobrazí na stránce WebJobs . Pokud se zobrazí zpráva s oznámením, že webová úloha byla přidána, ale nevidíte ji, vyberte Aktualizovat.
Pokud chcete spustit ručně aktivovanou webovou úlohu, klikněte pravým tlačítkem myši na webovou úlohu v seznamu a vyberte tlačítko Spustit a potvrďte výběr.
Vytvoření naplánované webové úlohy
Aktivuje se také naplánovaná webová úloha. Aktivační událost můžete naplánovat tak, aby automaticky probíhala podle vámi zadaného plánu.
Na webu Azure Portal přejděte na stránku App Service vaší webové aplikace App Service , aplikace API nebo mobilní aplikace.
V levém podokně vyberte WebJobs a pak vyberte Přidat.
Vyplňte nastavení Přidat webovou úlohu, jak je uvedeno v tabulce, a pak vyberte Vytvořit webovou úlohu.
Nastavení Ukázková hodnota Popis Název myScheduledWebJob Název, který je jedinečný v rámci aplikace služby App Service. Musí začínat písmenem nebo číslicí a nesmí obsahovat jiné speciální znaky než "-" a "_". Nahrání souboru ConsoleApp.zip .zip soubor, který obsahuje váš spustitelný soubor nebo soubor skriptu a všechny podpůrné soubory potřebné ke spuštění programu nebo skriptu. Podporované typy souborů spustitelného souboru nebo skriptu jsou uvedeny v části Podporované typy souborů. Typ Aktivované Typy webových úloh jsou popsány výše v tomto článku. Triggery Plánováno Aby plánování fungovalo spolehlivě, povolte funkci AlwaysOn. AlwaysOn je k dispozici pouze v cenových úrovních Basic, Standard a Premium. Výraz CRON 0 0/20 * * * * Výrazy CRON jsou popsány v následující části. Nová webová úloha se zobrazí na stránce WebJobs . Pokud se zobrazí zpráva s oznámením, že webová úloha byla přidána, ale nevidíte ji, vyberte Aktualizovat.
Naplánovaná webová úloha se spustí podle plánu definovaného výrazem CRON. Pokud ji chcete kdykoli spustit ručně, klikněte pravým tlačítkem myši na webovou úlohu v seznamu a vyberte tlačítko Spustit a potvrďte výběr.
Výrazy NCRONTAB
Výraz NCRONTAB můžete zadat na portálu nebo zahrnout settings.job
soubor do kořenového adresáře webové úlohy .zip souboru, jak je znázorněno v následujícím příkladu:
{
"schedule": "0 */15 * * * *"
}
Další informace najdete v tématu Plánování aktivované webové úlohy.
Poznámka:
Výchozím časovým pásmem používaným ke spouštění výrazů CRON je koordinovaný univerzální čas (UTC). Pokud chcete, aby se výraz CRON spouštěl na základě jiného časového pásma, vytvořte nastavení aplikace pro aplikaci funkcí s názvem WEBSITE_TIME_ZONE. Další informace najdete v tématu NCRONTAB časových pásem.
Správa webových úloh
Na webu Azure Portal můžete spravovat stav spuštění jednotlivých webových úloh spuštěných na webu. Přejděte na Nastavení>webové úlohy, zvolte webovou úlohu a můžete spustit a zastavit webovou úlohu. Můžete také zobrazit a upravit heslo webhooku, který spouští webovou úlohu.
Můžete také přidat nastavení aplikace s WEBJOBS_STOPPED
názvem hodnota 1
zastavení všech webových úloh spuštěných na vašem webu. Tuto metodu můžete použít, abyste zabránili konfliktu webových úloh v přípravném i produkčním slotu. Podobně můžete použít hodnotu 1
nastavení k WEBJOBS_DISABLE_SCHEDULE
zakázání aktivovaných webových úloh na webu nebo přípravném slotu. U slotů nezapomeňte povolit možnost nastavení slotu nasazení, aby se samotné nastavení neprohodila.
Zobrazení historie úloh
U webové úlohy, kterou chcete zobrazit, vyberte Protokoly.
Na stránce Podrobnosti webové úlohy vyberte čas, abyste zobrazili podrobnosti o jednom spuštění.
Na stránce Podrobnosti o spuštění webové úlohy můžete vybrat stažení , abyste získali textový soubor protokolů, nebo vyberte odkaz WebJobs s popisem cesty v horní části stránky a zobrazte protokoly pro jinou webovou úlohu.
Stavy webové úlohy
Následuje seznam běžných stavů webové úlohy:
- Inicializace aplikace se spustila a webová úloha prochází procesem inicializace.
- Spouští se webová úloha.
- Spuštění webové úlohy je spuštěné.
- PendingRestart A continuous WebJob exits in less than two minutes since it started for any reason, and App Service waits 60 seconds before restarting the WebJob. Pokud se nepřetržitá webová úloha ukončí po dvouminutové značce, služba App Service nečeká na 60 sekund a okamžitě restartuje webovou úlohu.
- Webová úloha se zastavila (obvykle z webu Azure Portal) a aktuálně není spuštěná a nespustí se, dokud ji znovu nespustíte ručně, a to i pro nepřetržitou nebo naplánovanou webovou úlohu.
- Přerušeno Toto může nastat z mnoha důvodů, například když dlouhotrvající webová úloha dosáhne značky časového limitu.
Další kroky
Sadu Azure WebJobs SDK je možné použít se službou WebJobs ke zjednodušení mnoha programovacích úloh. Další informace naleznete v tématu Co je Sada WebJobs SDK.