Uruchamianie zadań w tle za pomocą zadań WebJob w usłudze aplikacja systemu Azure

Uwaga

Zadania WebJob dla kontenera systemu Windows, kodu systemu Linux i kontenera systemu Linux są w wersji zapoznawczej. Zadania WebJob dla kodu systemu Windows są ogólnie dostępne i nie są dostępne w wersji zapoznawczej.

Wdrażanie zadań WebJob przy użyciu witryny Azure Portal w celu przekazania pliku wykonywalnego lub skryptu. Zadania w tle można uruchamiać w usłudze aplikacja systemu Azure Service.

Jeśli zamiast usługi aplikacja systemu Azure używasz programu Visual Studio do tworzenia i wdrażania zadań WebJob, zobacz Wdrażanie zadań WebJob przy użyciu programu Visual Studio.

Omówienie

Zadania WebJob to funkcja usługi aplikacja systemu Azure, która umożliwia uruchamianie programu lub skryptu w tym samym wystąpieniu co aplikacja internetowa. Korzystanie z zadań WebJob nie jest kosztowne.

Zestaw SDK usługi Azure WebJobs można używać z zadaniami WebJobs, aby uprościć wiele zadań programistycznych. Aby uzyskać więcej informacji, zobacz Co to jest zestaw SDK usługi WebJobs.

Usługa Azure Functions umożliwia uruchamianie programów i skryptów. Aby zapoznać się z porównaniem zadań WebJob i Functions, zobacz Wybieranie między usługami Flow, Logic Apps, Functions i WebJobs.

Typy zadań WebJob

Obsługiwane typy plików dla skryptów lub programów

Następujące typy plików są obsługiwane:
.cmd, .bat, .exe (przy użyciu narzędzia cmd systemu Windows)
.ps1 (przy użyciu programu PowerShell)
.sh (przy użyciu powłoki Bash)
.php (przy użyciu języka PHP)
.py (przy użyciu języka Python)
.js (przy użyciu Node.js)
.jar (przy użyciu języka Java)

Środowiska uruchomieniowe niezbędne do uruchamiania tych typów plików są już zainstalowane w wystąpieniu aplikacji internetowej.

Ciągłe a wyzwalane zadania WebJob

W poniższej tabeli opisano różnice między zadaniami WebJob w trybie ciągłym i wyzwalanym :

Ciągłe Wyzwolone
Rozpoczyna się natychmiast po utworzeniu zadania WebJob. Aby zadanie zostało zakończone, program lub skrypt zwykle wykonuje swoją pracę wewnątrz nieskończonej pętli. Jeśli zadanie zostanie zakończone, możesz go uruchomić ponownie. Zazwyczaj jest używany z zestawem SDK usługi WebJobs. Uruchamia się tylko po wyzwoleniu ręcznie lub zgodnie z harmonogramem.
Uruchamia się we wszystkich wystąpieniach, na których działa aplikacja internetowa. Opcjonalnie można ograniczyć zadania WebJob do pojedynczego wystąpienia. Uruchamia się w jednym wystąpieniu wybranym przez platformę Azure na potrzeby równoważenia obciążenia.
Obsługuje debugowanie zdalne. Nie obsługuje zdalnego debugowania.
Kod jest wdrażany w obszarze \site\wwwroot\app_data\Jobs\Continuous. Kod jest wdrażany w obszarze \site\wwwroot\app_data\Jobs\Triggered.

Uwaga

Aplikacja internetowa może upłynął limit czasu po upływie 20 minut braku aktywności i tylko żądania do rzeczywistej aplikacji internetowej mogą zresetować czasomierz. Wyświetlanie konfiguracji aplikacji w witrynie Azure Portal lub wykonywanie żądań do witryny zaawansowanych narzędzi (https://<app_name>.scm.azurewebsites.net) nie powoduje zresetowania czasomierza. Jeśli ustawisz aplikację internetową, która hostuje zadanie do ciągłego uruchamiania, uruchom je zgodnie z harmonogramem lub użyj wyzwalaczy sterowanych zdarzeniami, włącz ustawienie Zawsze włączone na stronie Konfiguracja platformy Azure aplikacji internetowej. Ustawienie Zawsze włączone pomaga upewnić się, że tego rodzaju zadania WebJob działają niezawodnie. Ta funkcja jest dostępna tylko w warstwach cenowych Podstawowa, Standardowa i Premium.

Tworzenie ciągłego zadania WebJob

Ważne

Po skonfigurowaniu kontroli źródła dla aplikacji zadania Webjob powinny być wdrażane w ramach integracji kontroli źródła. Po skonfigurowaniu kontroli źródła dla aplikacji nie można dodać zadania WebJob w witrynie Azure Portal.

  1. W witrynie Azure Portal przejdź do strony usługi App Service aplikacji internetowej usługi App Service, aplikacji interfejsu API lub aplikacji mobilnej.

  2. W okienku po lewej stronie wybierz pozycję Zadania WebJob, a następnie wybierz pozycję Dodaj.

    Zrzut ekranu przedstawiający sposób dodawania zadania WebJob w aplikacji usługi App Service w portalu.

  3. Wypełnij pola Dodaj ustawienia zadania WebJob, jak określono w tabeli, a następnie wybierz pozycję Utwórz webjob.

    Zrzut ekranu przedstawiający sposób konfigurowania ciągłego zadania WebJob wystąpienia mult dla aplikacji usługi App Service.

    Ustawienie Przykładowa wartość Opis
    Nazwa/nazwisko myContinuousWebJob Nazwa unikatowa w aplikacji usługi App Service. Musi zaczynać się literą lub cyfrą i nie może zawierać znaków specjalnych innych niż "-" i "_".
    Przekazywanie pliku ConsoleApp.zip Plik .zip zawierający plik wykonywalny lub plik skryptu oraz wszystkie pliki pomocnicze potrzebne do uruchomienia programu lub skryptu. Obsługiwane typy plików wykonywalnych lub skryptów są wymienione w sekcji Obsługiwane typy plików.
    Type Ciągłe Typy zadań WebJob zostały opisane wcześniej w tym artykule.
    Skaluj Wiele wystąpień Dostępne tylko dla ciągłych zadań WebJob. Określa, czy program lub skrypt jest uruchamiany we wszystkich wystąpieniach, czy w jednym wystąpieniu. Opcja uruchamiania w wielu wystąpieniach nie ma zastosowania do warstw cenowych Bezpłatna ani Współdzielona.
  4. Nowe polecenie WebJob zostanie wyświetlone na stronie Zadania WebJob . Jeśli zostanie wyświetlony komunikat informujący o dodaniu zadania WebJob, ale go nie widzisz, wybierz pozycję Odśwież.

  5. Aby zatrzymać lub ponownie uruchomić ciągłe zadanie WebJob, kliknij prawym przyciskiem myszy zadanie WebJob na liście i wybierz przycisk Zatrzymaj lub Uruchom , a następnie potwierdź wybór.

    Zrzut ekranu przedstawiający sposób zatrzymywania ciągłego zadania WebJob w witrynie Azure Portal.

Tworzenie ręcznie wyzwalanego zadania WebJob

  1. W witrynie Azure Portal przejdź do strony usługi App Service aplikacji internetowej usługi App Service, aplikacji interfejsu API lub aplikacji mobilnej.

  2. W okienku po lewej stronie wybierz pozycję Zadania WebJob, a następnie wybierz pozycję Dodaj.

    Zrzut ekranu przedstawiający sposób dodawania zadania WebJob w aplikacji usługi App Service w portalu (ręcznie wyzwalane zadanie WebJob).

  3. Wypełnij pola Dodaj ustawienia zadania WebJob, jak określono w tabeli, a następnie wybierz pozycję Utwórz webjob.

    Zrzut ekranu przedstawiający sposób konfigurowania ręcznie wyzwalanego zadania WebJob dla aplikacji usługi App Service.

    Ustawienie Przykładowa wartość Opis
    Nazwa/nazwisko myTriggeredWebJob Nazwa unikatowa w aplikacji usługi App Service. Musi zaczynać się literą lub cyfrą i nie może zawierać znaków specjalnych innych niż "-" i "_".
    Przekazywanie pliku ConsoleApp1.zip Plik .zip zawierający plik wykonywalny lub plik skryptu oraz wszystkie pliki pomocnicze potrzebne do uruchomienia programu lub skryptu. Obsługiwane typy plików wykonywalnych lub skryptów są wymienione w sekcji Obsługiwane typy plików.
    Type Wyzwolone Typy zadań WebJob zostały opisane wcześniej w tym artykule.
    Wyzwalacze Ręcznie
  4. Nowe polecenie WebJob zostanie wyświetlone na stronie Zadania WebJob . Jeśli zostanie wyświetlony komunikat informujący o dodaniu zadania WebJob, ale go nie widzisz, wybierz pozycję Odśwież.

  5. Aby uruchomić ręcznie wyzwolone zadanie WebJob, kliknij prawym przyciskiem myszy zadanie WebJob na liście i wybierz przycisk Uruchom , a następnie potwierdź wybór.

    Zrzut ekranu przedstawiający sposób ręcznego uruchamiania wyzwalanego zadania WebJob w witrynie Azure Portal.

Tworzenie zaplanowanego zadania WebJob

Wyzwalane jest również zaplanowane zadanie Webjob. Wyzwalacz można zaplanować automatycznie zgodnie z określonym harmonogramem.

  1. W witrynie Azure Portal przejdź do strony usługi App Service aplikacji internetowej usługi App Service, aplikacji interfejsu API lub aplikacji mobilnej.

  2. W okienku po lewej stronie wybierz pozycję Zadania WebJob, a następnie wybierz pozycję Dodaj.

    Zrzut ekranu przedstawiający sposób dodawania zadania WebJob w aplikacji usługi App Service w portalu (zaplanowane zadanie WebJob).

  3. Wypełnij pola Dodaj ustawienia zadania WebJob, jak określono w tabeli, a następnie wybierz pozycję Utwórz webjob.

    Zrzut ekranu przedstawiający sposób konfigurowania zaplanowanego zadania WebJob w aplikacji usługi App Service.

    Ustawienie Przykładowa wartość Opis
    Nazwa/nazwisko myScheduledWebJob Nazwa unikatowa w aplikacji usługi App Service. Musi zaczynać się literą lub cyfrą i nie może zawierać znaków specjalnych innych niż "-" i "_".
    Przekazywanie pliku ConsoleApp.zip Plik .zip zawierający plik wykonywalny lub plik skryptu oraz wszystkie pliki pomocnicze potrzebne do uruchomienia programu lub skryptu. Obsługiwane typy plików wykonywalnych lub skryptów są wymienione w sekcji Obsługiwane typy plików.
    Type Wyzwolone Typy zadań WebJob zostały opisane wcześniej w tym artykule.
    Wyzwalacze Zaplanowane Aby planowanie działało niezawodnie, włącz funkcję Zawsze włączone. Zawsze włączone jest dostępne tylko w warstwach cenowych Podstawowa, Standardowa i Premium.
    Wyrażenie CRON 0 0/20 * * * * Wyrażenia CRON zostały opisane w poniższej sekcji.
  4. Nowe polecenie WebJob zostanie wyświetlone na stronie Zadania WebJob . Jeśli zostanie wyświetlony komunikat informujący o dodaniu zadania WebJob, ale go nie widzisz, wybierz pozycję Odśwież.

  5. Zaplanowane zadanie WebJob jest uruchamiane zgodnie z harmonogramem zdefiniowanym przez wyrażenie CRON. Aby uruchomić je ręcznie w dowolnym momencie, kliknij prawym przyciskiem myszy zadanie WebJob na liście i wybierz przycisk Uruchom , a następnie potwierdź wybór.

    Zrzut ekranu przedstawiający sposób ręcznego uruchamiania zaplanowanego zadania WebJob w witrynie Azure Portal.

Wyrażenia NCRONTAB

Możesz wprowadzić wyrażenie NCRONTAB w portalu lub dołączyć settings.job plik w katalogu głównym pliku .zip zadania WebJob, jak w poniższym przykładzie:

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

Aby dowiedzieć się więcej, zobacz Planowanie wyzwalanego zadania WebJob.

Uwaga

Domyślna strefa czasowa używana do uruchamiania wyrażeń CRON to uniwersalny czas koordynowany (UTC). Aby uruchomić wyrażenie CRON na podstawie innej strefy czasowej, utwórz ustawienie aplikacji dla aplikacji funkcji o nazwie WEBSITE_TIME_ZONE. Aby dowiedzieć się więcej, zobacz NCRONTAB strefy czasowe.

Zarządzanie zadaniami WebJob

Możesz zarządzać poszczególnymi zadaniami WebJob uruchomionymi w witrynie w witrynie w witrynie Azure Portal. Przejdź do Ustawienia> WebJobs, wybierz zadania WebJob i możesz uruchomić i zatrzymać zadania WebJob. Możesz również wyświetlić i zmodyfikować hasło elementu webhook, który uruchamia zadania WebJob.

Możesz również dodać ustawienie aplikacji o nazwie WEBJOBS_STOPPED z wartością 1 , aby zatrzymać wszystkie zadania WebJob uruchomione w witrynie. Za pomocą tej metody można zapobiec uruchamianiu konfliktów zadań WebJob zarówno w miejscach przejściowych, jak i produkcyjnych. Możesz również użyć wartości 1 dla WEBJOBS_DISABLE_SCHEDULE ustawienia, aby wyłączyć wyzwalane zadania WebJob w witrynie lub miejscu przejściowym. W przypadku miejsc pamiętaj, aby włączyć opcję Ustawienia miejsca wdrożenia, aby samo ustawienie nie było zamieniane.

Wyświetlanie historii zadań

  1. W przypadku zadania WebJob, które chcesz zobaczyć, wybierz pozycję Dzienniki.

    Zrzut ekranu przedstawiający sposób uzyskiwania dostępu do dzienników zadania WebJob.

  2. Na stronie Szczegóły zadania WebJob wybierz godzinę, aby wyświetlić szczegóły jednego przebiegu.

    Zrzut ekranu przedstawiający sposób wybierania przebiegu zadania WebJob w celu wyświetlenia szczegółowych dzienników.

  3. Na stronie Szczegóły uruchamiania zadania WebJob możesz wybrać opcję pobierania, aby pobrać plik tekstowy dzienników, lub wybrać link do stron nadrzędnych zadań WebJob w górnej części strony, aby wyświetlić dzienniki dla innego zadania WebJob.

Stany zadania WebJob

Poniżej znajduje się lista typowych stanów zadań WebJob:

  • Inicjowanie aplikacji zostało uruchomione i trwa proces inicjowania zadania WebJob.
  • Uruchamianie zadania WebJob jest uruchamiane.
  • Uruchamianie zadania WebJob jest uruchomione.
  • PendingRestart Ciągłe zakończenie zadania WebJob trwa krócej niż dwie minuty od jakiegokolwiek powodu, a usługa App Service czeka 60 sekund przed ponownym uruchomieniem zadania WebJob. Jeśli ciągłe zadanie WebJob kończy się po dwuminutowym znaku, usługa App Service nie czeka 60 sekund i natychmiast uruchamia zadanie WebJob.
  • Zatrzymano zadanie WebJob zostało zatrzymane (zwykle w witrynie Azure Portal) i obecnie nie jest uruchomione i nie zostanie uruchomione, dopóki nie uruchomisz go ponownie ręcznie, nawet w przypadku ciągłego lub zaplanowanego zadania WebJob.
  • Przerwane może wystąpić z wielu powodów, takich jak gdy długotrwałe wykonanie zadania WebJob osiągnie znacznik limitu czasu.

Następne kroki

Zestaw SDK usługi Azure WebJobs można używać z zadaniami WebJob, aby uprościć wiele zadań programistycznych. Aby uzyskać więcej informacji, zobacz Co to jest zestaw SDK usługi WebJobs.