Spouštění úloh na pozadí pomocí webových úloh ve službě Aplikace Azure Service

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.

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.

Přehled

WebJobs je funkce služby Aplikace Azure, která umožňuje spustit program nebo skript ve stejné instanci jako webová aplikace. Používání webových úloh není nijak nákladné.

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.

  1. Na webu Azure Portal přejděte na stránku App Service vaší webové aplikace App Service , aplikace API nebo mobilní aplikace.

  2. V levém podokně vyberte WebJobs a pak vyberte Přidat.

    Snímek obrazovky, který ukazuje, jak přidat webovou úlohu do aplikace App Service na portálu

  3. Vyplňte nastavení Přidat webovou úlohu, jak je uvedeno v tabulce, a pak vyberte Vytvořit webovou úlohu.

    Snímek obrazovky, který ukazuje, jak nakonfigurovat nepřetržitou webovou úlohu s několika instancemi pro aplikaci App Service

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

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

    Snímek obrazovky, který ukazuje, jak zastavit nepřetržitou webovou úlohu na webu Azure Portal

Vytvoření ručně aktivované webové úlohy

  1. Na webu Azure Portal přejděte na stránku App Service vaší webové aplikace App Service , aplikace API nebo mobilní aplikace.

  2. V levém podokně vyberte WebJobs a pak vyberte Přidat.

    Snímek obrazovky znázorňující, jak přidat webovou úlohu do aplikace App Service na portálu (ručně aktivovaná webová úloha)

  3. Vyplňte nastavení Přidat webovou úlohu, jak je uvedeno v tabulce, a pak vyberte Vytvořit webovou úlohu.

    Snímek obrazovky znázorňující, jak nakonfigurovat ručně aktivovanou webovou úlohu pro aplikaci App Service

    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í
  4. 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.

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

    Snímek obrazovky znázorňující, jak spustit ručně aktivovanou webovou úlohu na webu Azure Portal

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.

  1. Na webu Azure Portal přejděte na stránku App Service vaší webové aplikace App Service , aplikace API nebo mobilní aplikace.

  2. V levém podokně vyberte WebJobs a pak vyberte Přidat.

    Snímek obrazovky, který ukazuje, jak přidat webovou úlohu do aplikace App Service na portálu (naplánovaná webová úloha).

  3. Vyplňte nastavení Přidat webovou úlohu, jak je uvedeno v tabulce, a pak vyberte Vytvořit webovou úlohu.

    Snímek obrazovky znázorňující, jak nakonfigurovat naplánovanou webovou úlohu v aplikaci app Service

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

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

    Snímek obrazovky znázorňující, jak spustit ručně naplánovanou webovou úlohu na webu Azure Portal

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í> WebJobs, 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

  1. U webové úlohy, kterou chcete zobrazit, vyberte Protokoly.

    Snímek obrazovky znázorňující přístup k protokolům pro webovou úlohu

  2. Na stránce Podrobnosti webové úlohy vyberte čas, abyste zobrazili podrobnosti o jednom spuštění.

    Snímek obrazovky, který ukazuje, jak zvolit spuštění webové úlohy, aby se zobrazily podrobné protokoly

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