Выполнение фоновых задач с помощью веб-заданий в службе приложений AzureRun background tasks with WebJobs in Azure App Service

В этой статье показано, как развертывать веб-задания с помощью портала Azure для отправки исполняемого файла или сценария.This article shows how to deploy WebJobs by using the Azure portal to upload an executable or script. Дополнительные сведения о том, как разрабатывать и развертывать веб-задания с помощью Visual Studio см. в статье Develop and deploy WebJobs using Visual Studio - Azure App Service (Разработка и развертывание веб-заданий с помощью Visual Studio в службе приложений Azure).For information about how to develop and deploy WebJobs by using Visual Studio, see Deploy WebJobs using Visual Studio.

ОбзорOverview

Веб-задания — это функция службы приложений Azure , которая позволяет запускать программу или сценарий в том же экземпляре, что и приложение, приложение API или мобильное приложение.WebJobs is a feature of Azure App Service that enables you to run a program or script in the same instance as a web app, API app, or mobile app. Для использования веб-заданий дополнительные затраты не требуются.There is no additional cost to use WebJobs.

Важно!

Веб-задания пока не поддерживаются Службой приложений в Linux.WebJobs is not yet supported for App Service on Linux.

Пакет SDK веб-заданий Azure может использоваться с веб-заданиями для упрощения многих задач программирования.The Azure WebJobs SDK can be used with WebJobs to simplify many programming tasks. Дополнительные сведения см. в разделе Информация о пакете SDK веб-заданий.For more information, see What is the WebJobs SDK.

Функции Azure предоставляют еще один способ запуска программ и сценариев.Azure Functions provides another way to run programs and scripts. Сравнение веб-заданий и функций см. в статье Сравнение Microsoft Flow, Logic Apps, функций и веб-заданий Azure.For a comparison between WebJobs and Functions, see Choose between Flow, Logic Apps, Functions, and WebJobs.

Типы веб-заданийWebJob types

В следующей таблице описаны различия между непрерывными и активируемыми веб-заданиями.The following table describes the differences between continuous and triggered WebJobs.

С задержкойContinuous АктивируемыеTriggered
Запускается сразу после создания веб-задания.Starts immediately when the WebJob is created. Чтобы предотвратить завершение задания, программа или сценарий обычно выполняют свою работу в бесконечном цикле.To keep the job from ending, the program or script typically does its work inside an endless loop. Если задание завершается, его можно перезапустить.If the job does end, you can restart it. Запускается только при активации вручную или по расписанию.Starts only when triggered manually or on a schedule.
Запускается на всех экземплярах, где выполняется веб-приложение.Runs on all instances that the web app runs on. При необходимости можно ограничить веб-задание одним экземпляром.You can optionally restrict the WebJob to a single instance. Запускается на одном экземпляре, который выбран Azure для балансировки нагрузки.Runs on a single instance that Azure selects for load balancing.
Поддерживает удаленную отладку.Supports remote debugging. Не поддерживает удаленную отладку.Doesn't support remote debugging.

Примечание

Время ожидания веб-приложения может истечь после 20 минут бездействия.A web app can time out after 20 minutes of inactivity. Сбросить таймер можно только с помощью запросов к фактическому веб-приложению.and only requests to the actual web app can reset the timer. Таймер не будет сброшен при просмотре конфигурации приложения на портале Azure или выполнении запросов к сайту расширенных средств (https://<app_name>.scm.azurewebsites.net).Viewing the app's configuration in the Azure portal or making requests to the advanced tools site (https://<app_name>.scm.azurewebsites.net) doesn't reset the timer. Если веб-приложение настроено для выполнения непрерывных или запланированных заданий (триггер таймера), установите параметр Всегда включено в Azure на странице Конфигурация веб-приложения, чтобы обеспечить надежное выполнение веб-заданий.If you set your web app to run continuous or scheduled (timer-trigger) WebJobs, enable the Always on setting on your web app's Azure Configuration page to ensure that the WebJobs run reliably. Эта функция доступна только в ценовых категориях "Базовый", "Стандартный" и "Премиум".This feature is available only in the Basic, Standard, and Premium pricing tiers.

Поддерживаемые типы файлов для сценариев и программSupported file types for scripts or programs

Поддерживаются следующие типы файлов:The following file types are supported:

  • .cmd, .bat, .exe (с использованием командной строки Windows).cmd, .bat, .exe (using Windows cmd)
  • .ps1 (с использованием PowerShell).ps1 (using PowerShell)
  • .sh (с использованием Bash).sh (using Bash)
  • .php (с использованием PHP).php (using PHP)
  • .py (с использованием Python).py (using Python)
  • .js (с использованием Node.js).js (using Node.js)
  • .jar (с использованием Java).jar (using Java)

Создание непрерывного веб-заданияCreate a continuous WebJob

Важно!

Если система управления версиями настроена для приложения, веб-задания должны быть развернуты в рамках интеграции системы управления версиями.If you have source control configured with your application, the Webjobs should be deployed as part of the source control integration. После настройки системы управления версиями с помощью приложения веб-задание нельзя добавить на портале Azure.Once source control is configured with your application a WebJob cannot be add from the Azure Portal.

  1. На портале Azure перейдите на страницу Служба приложений веб-приложения службы приложений, приложения API или мобильного приложения.In the Azure portal, go to the App Service page of your App Service web app, API app, or mobile app.

  2. Выберите Веб-задания .Select WebJobs .

    Выбор веб-заданий

  3. На странице Веб-задания выберите Добавить .In the WebJobs page, select Add .

    Страница веб-задания

  4. В окне Добавление веб-задания задайте значения параметров, указанные в таблице.Use the Add WebJob settings as specified in the table.

    Снимок экрана, на котором показаны параметры добавления веб-заданий, которые необходимо настроить.

    ПараметрSetting Образец значенияSample value ОписаниеDescription
    имя ;Name myContinuousWebJobmyContinuousWebJob Имя, которое является уникальным в пределах приложения службы приложений.A name that is unique within an App Service app. Оно должно начинаться с буквы или цифры и не может содержать специальные символы, отличные от "-" и "".Must start with a letter or a number and cannot contain special characters other than "-" and "".
    Отправка файлаFile Upload ConsoleApp.zipConsoleApp.zip ZIP -файл, который содержит исполняемый файл или файл сценария, а также все вспомогательные файлы, необходимые для запуска программы или сценария.A .zip file that contains your executable or script file as well as any supporting files needed to run the program or script. Поддерживаемые типы исполняемых файлов или файлов сценариев перечислены в разделе Поддерживаемые типы файлов.The supported executable or script file types are listed in the Supported file types section.
    ТипType С задержкойContinuous Типы веб-заданий описаны ранее в этой статье.The WebJob types are described earlier in this article.
    МасштабированиеScale Несколько экземпляровMulti instance Доступно только для непрерывных веб-заданий.Available only for Continuous WebJobs. Определяет, будет ли программа или сценарий выполняться на всех экземплярах или только на одном экземпляре.Determines whether the program or script runs on all instances or just one instance. Вариант для запуска на нескольких экземплярах не применяется в ценовых категориях "Бесплатный" или "Общий".The option to run on multiple instances doesn't apply to the Free or Shared pricing tiers.
  5. Нажмите кнопку ОК .Click OK .

    Новое веб-задание появится на странице Веб-задания .The new WebJob appears on the WebJobs page.

    Список веб-заданий

  6. Чтобы остановить или перезапустить непрерывное веб-задание, щелкните правой кнопкой мыши веб-задание в списке и выберите Остановить или Запустить .To stop or restart a continuous WebJob, right-click the WebJob in the list and click Stop or Start .

    Остановка непрерывного веб-задания

Создание активируемого вручную веб-заданияCreate a manually triggered WebJob

  1. На портале Azure перейдите на страницу Служба приложений веб-приложения службы приложений, приложения API или мобильного приложения.In the Azure portal, go to the App Service page of your App Service web app, API app, or mobile app.

  2. Выберите Веб-задания .Select WebJobs .

    Выбор веб-заданий

  3. На странице Веб-задания выберите Добавить .In the WebJobs page, select Add .

    Страница веб-задания

  4. В окне Добавление веб-задания задайте значения параметров, указанные в таблице.Use the Add WebJob settings as specified in the table.

    Снимок экрана, на котором показаны параметры, которые необходимо задать для создания веб-задания, запускаемого вручную.

    ПараметрSetting Образец значенияSample value ОписаниеDescription
    имя ;Name myTriggeredWebJobmyTriggeredWebJob Имя, которое является уникальным в пределах приложения службы приложений.A name that is unique within an App Service app. Оно должно начинаться с буквы или цифры и не может содержать специальные символы, отличные от "-" и "".Must start with a letter or a number and cannot contain special characters other than "-" and "".
    Отправка файлаFile Upload ConsoleApp.zipConsoleApp.zip ZIP -файл, который содержит исполняемый файл или файл сценария, а также все вспомогательные файлы, необходимые для запуска программы или сценария.A .zip file that contains your executable or script file as well as any supporting files needed to run the program or script. Поддерживаемые типы исполняемых файлов или файлов сценариев перечислены в разделе Поддерживаемые типы файлов.The supported executable or script file types are listed in the Supported file types section.
    ТипType АктивируемыеTriggered Типы веб-заданий описаны ранее в этой статье.The WebJob types are described earlier in this article.
    ТриггерыTriggers ВручнуюManual
  5. Нажмите кнопку ОК .Click OK .

    Новое веб-задание появится на странице Веб-задания .The new WebJob appears on the WebJobs page.

    Список веб-заданий

  6. Чтобы запустить веб-задание, щелкните правой кнопкой мыши его имя в списке и нажмите Запустить .To run the WebJob, right-click its name in the list and click Run .

    Запуск веб-задания

Создание запланированного веб-заданияCreate a scheduled WebJob

  1. На портале Azure перейдите на страницу Служба приложений веб-приложения службы приложений, приложения API или мобильного приложения.In the Azure portal, go to the App Service page of your App Service web app, API app, or mobile app.

  2. Выберите Веб-задания .Select WebJobs .

    Выбор веб-заданий

  3. На странице Веб-задания выберите Добавить .In the WebJobs page, select Add .

    Страница веб-задания

  4. В окне Добавление веб-задания задайте значения параметров, указанные в таблице.Use the Add WebJob settings as specified in the table.

    Страница добавления веб-задания

    ПараметрSetting Образец значенияSample value ОписаниеDescription
    имя ;Name myScheduledWebJobmyScheduledWebJob Имя, которое является уникальным в пределах приложения службы приложений.A name that is unique within an App Service app. Оно должно начинаться с буквы или цифры и не может содержать специальные символы, отличные от "-" и "".Must start with a letter or a number and cannot contain special characters other than "-" and "".
    Отправка файлаFile Upload ConsoleApp.zipConsoleApp.zip ZIP -файл, который содержит исполняемый файл или файл сценария, а также все вспомогательные файлы, необходимые для запуска программы или сценария.A .zip file that contains your executable or script file as well as any supporting files needed to run the program or script. Поддерживаемые типы исполняемых файлов или файлов сценариев перечислены в разделе Поддерживаемые типы файлов.The supported executable or script file types are listed in the Supported file types section.
    ТипType АктивируемыеTriggered Типы веб-заданий описаны ранее в этой статье.The WebJob types are described earlier in this article.
    ТриггерыTriggers ЗапланированоScheduled Для надежной работы расписания включите функцию Always On.For the scheduling to work reliably, enable the Always On feature. Она доступна только в ценовых категориях "Базовый", "Стандартный" и "Премиум".Always On is available only in the Basic, Standard, and Premium pricing tiers.
    Выражение CRONCRON Expression 0 0/20 * * * *0 0/20 * * * * Выражения CRON описаны в следующем разделе.CRON expressions are described in the following section.
  5. Нажмите кнопку ОК .Click OK .

    Новое веб-задание появится на странице Веб-задания .The new WebJob appears on the WebJobs page.

    Список веб-заданий

Выражения НКРОНТАБNCRONTAB expressions

Можно ввести выражение нкронтаб на портале или включить settings.job файл в корень ZIP -файла веб-задания, как показано в следующем примере:You can enter a NCRONTAB expression in the portal or include a settings.job file at the root of your WebJob .zip file, as in the following example:

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

Дополнительные сведения см. в разделе Планирование запуска веб-задания.To learn more, see Scheduling a triggered WebJob.

Примечание

Часовой пояс по умолчанию, используемый в выражениях CRON, — время в формате UTC.The default time zone used to run CRON expressions is Coordinated Universal Time (UTC). Если нужно использовать другой часовой пояс в выражении CRON, создайте для приложения-функции параметр приложения с именем WEBSITE_TIME_ZONE.To have your CRON expression run based on another time zone, create an app setting for your function app named WEBSITE_TIME_ZONE. См. сведения о часовых поясах NCRONTAB.To learn more, see NCRONTAB time zones.

Просмотр журнала заданийView the job history

  1. Выберите веб-задание, журнал которого необходимо просмотреть, а затем нажмите кнопку Журналы .Select the WebJob you want to see history for, and then select the Logs button.

    Кнопка "Журналы"

  2. На странице WebJob Details (Подробности веб-задания) выберите время, чтобы просмотреть подробные сведения об одном выполнении.In the WebJob Details page, select a time to see details for one run.

    Подробности веб-задания

  3. На странице WebJob Details (Подробности веб-задания) выберите Переключить выходные данные , чтобы увидеть текст содержимого журнала.In the WebJob Run Details page, select Toggle Output to see the text of the log contents.

    Сведения о выполнении веб-задания

    Чтобы просмотреть текст вывода в отдельном окне браузера, щелкните ссылку скачать .To see the output text in a separate browser window, select download . Чтобы скачать текст, щелкните ссылку скачать правой кнопкой мыши и выберите команду для сохранения содержимого файла в контекстном меню браузера.To download the text itself, right-click download and use your browser options to save the file contents.

  4. Выберите ссылку навигации Веб-задания в верхней части страницы, чтобы перейти к списку веб-заданий.Select the WebJobs breadcrumb link at the top of the page to go to a list of WebJobs.

    Навигация веб-заданий

    Список веб-заданий на панели мониторинга журнала

Дальнейшие действияNext steps

Пакет SDK веб-заданий Azure может использоваться с веб-заданиями для упрощения многих задач программирования.The Azure WebJobs SDK can be used with WebJobs to simplify many programming tasks. Дополнительные сведения см. в разделе Информация о пакете SDK веб-заданий.For more information, see What is the WebJobs SDK.