Выполнение фоновых задач с помощью веб-заданий в службе приложений Azure
Вы можете развернуть веб-задания с помощью портала Azure для отправки исполняемого файла или скрипта. Фоновые задачи можно выполнять в Службе приложений Azure.
Если вместо службы приложение Azure вы используете Visual Studio для разработки и развертывания веб-заданий, см. статью "Развертывание веб-заданий с помощью Visual Studio".
Примечание.
Веб-задания для контейнера Windows, кода Linux и контейнера Linux доступны в предварительной версии. Веб-задания для кода Windows общедоступны и недоступны в предварительной версии.
Обзор
Веб-задания — это функция службы приложение Azure, которая позволяет запускать программу или скрипт в том же экземпляре, что и веб-приложение. Все планы службы приложений поддерживают веб-задания. Нет дополнительных затрат на использование веб-заданий.
Примечание.
Начиная с 1 июня 2024 г. все созданные Служба приложений приложения будут иметь возможность создать уникальное имя узла по умолчанию с помощью соглашения <app-name>-<random-hash>.<region>.azurewebsites.net
об именовании. Существующие имена приложений останутся неизменными.
Пример: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Дополнительные сведения см. в разделе "Уникальное имя узла по умолчанию" для ресурса Служба приложений.
Пакет SDK веб-заданий Azure можно использовать с веб-заданиями для упрощения многих задач программирования. Дополнительные сведения см. в разделе Информация о пакете SDK веб-заданий.
Функции Azure предоставляют еще один способ запуска программ и сценариев. Сравнение веб-заданий и функций см. в статье Сравнение Microsoft Flow, Logic Apps, функций и веб-заданий Azure.
Типы веб-заданий
Поддерживаемые типы файлов для сценариев и программ
Следующие типы файлов не поддерживаются:
.cmd, .bat, .exe (с помощью Windows cmd)
.ps1 (с помощью PowerShell)
.sh (использование Bash)
.php (с помощью PHP)
.py (с помощью Python)
.js (использование Node.js)
.jar (с помощью Java)
Необходимые среды выполнения этих типов файлов уже установлены в экземпляре веб-приложения.
Непрерывные и триггерные веб-задания
В следующей таблице описываются различия между непрерывными и триггерными веб-заданиями:
Непрерывные | Активируемые |
---|---|
Запускается сразу после создания веб-задания. Чтобы предотвратить завершение задания, программа или сценарий обычно выполняют свою работу в бесконечном цикле. Если задание завершается, его можно перезапустить. Обычно используется с пакетом SDK веб-заданий. | Запускается только при активации вручную или по расписанию. |
Запускается на всех экземплярах, где выполняется веб-приложение. При необходимости можно ограничить веб-задание одним экземпляром. | Запускается на одном экземпляре, который выбран Azure для балансировки нагрузки. |
Поддерживает удаленную отладку. | Не поддерживает удаленную отладку. |
Код развертывается в \site\wwwroot\app_data\Jobs\Continuous . |
Код развертывается в \site\wwwroot\app_data\Jobs\Triggered . |
Примечание.
Время ожидания веб-приложения может истечь через 20 минут бездействия, и только запросы к реальному веб-приложению могут сбросить таймер. Таймер не будет сброшен при просмотре конфигурации приложения на портале Azure или выполнении запросов к сайту расширенных средств (https://<app_name>.scm.azurewebsites.net
). Если веб-приложение, в котором размещено ваше задание, настроено для выполнения непрерывных или запланированных заданий либо использования триггеров на основе событий, установите параметр Всегда включено в Azure на странице Конфигурация веб-приложения. Этот параметр позволяет гарантировать, что такие типы веб-заданий будут надежно выполняться. Эта функция доступна только в ценовых категориях "Базовый", "Стандартный" и "Премиум".
Создание непрерывного веб-задания
Внимание
Если для приложения настроена система управления версиями, веб-задания следует развертывать как часть интеграции с системой управления версиями. Когда вы настроите для приложения систему управления версиями, веб-задание нельзя будет добавить через портал Azure.
На портале Azure перейдите на страницу Служба приложений веб-приложения службы приложений, приложения API или мобильного приложения.
В левой области выберите веб-задания, а затем нажмите кнопку "Добавить".
Введите параметры добавления веб-заданий , указанные в таблице, а затем нажмите кнопку "Создать веб-задание".
Параметр Пример значения Описание Имя myContinuousWebJob Имя, которое является уникальным в пределах приложения службы приложений. Должен начинаться с буквы или числа и не должен содержать специальные символы, отличные от "-" и "_". Отправка файлов ConsoleApp.zip Файл .zip , содержащий исполняемый файл или файл скрипта, а также все вспомогательные файлы, необходимые для запуска программы или скрипта. Поддерживаемые типы исполняемых файлов или файлов сценариев перечислены в разделе Поддерживаемые типы файлов. Тип Непрерывные Типы веб-заданий описаны ранее в этой статье. Масштабировать Несколько экземпляров Доступно только для непрерывных веб-заданий. Определяет, выполняется ли программа или скрипт на всех экземплярах или одном экземпляре. Вариант для запуска на нескольких экземплярах не применяется в ценовых категориях "Бесплатный" или "Общий". Новое веб-задание появится на странице Веб-задания. Если появится сообщение о том, что веб-задание было добавлено, но вы его не видите, выберите Обновить.
Чтобы остановить или перезапустить непрерывный веб-заданий, щелкните правой кнопкой мыши веб-задание в списке и нажмите кнопку "Остановить " или "Запустить ", а затем подтвердите выбор.
Создание веб-задания с активацией вручную
На портале Azure перейдите на страницу Служба приложений веб-приложения службы приложений, приложения API или мобильного приложения.
В левой области выберите веб-задания, а затем нажмите кнопку "Добавить".
Введите параметры добавления веб-заданий , указанные в таблице, а затем нажмите кнопку "Создать веб-задание".
Параметр Пример значения Описание Имя myTriggeredWebJob Имя, которое является уникальным в пределах приложения службы приложений. Должен начинаться с буквы или числа и не должен содержать специальные символы, отличные от "-" и "_". Отправка файлов ConsoleApp1.zip Файл .zip , содержащий исполняемый файл или файл скрипта, а также все вспомогательные файлы, необходимые для запуска программы или скрипта. Поддерживаемые типы исполняемых файлов или файлов сценариев перечислены в разделе Поддерживаемые типы файлов. Тип Активируемые Типы веб-заданий описаны ранее в этой статье. Триггеры Руководство Новое веб-задание появится на странице Веб-задания. Если появится сообщение о том, что веб-задание было добавлено, но вы его не видите, выберите Обновить.
Чтобы запустить веб-задание вручную, щелкните правой кнопкой мыши веб-задание в списке и нажмите кнопку "Выполнить ", а затем подтвердите выбор.
Создание запланированного веб-задания
Также запускается запланированное веб-задание. Вы можете запланировать автоматическую активацию по указанному расписанию.
На портале Azure перейдите на страницу Служба приложений веб-приложения службы приложений, приложения API или мобильного приложения.
В левой области выберите веб-задания, а затем нажмите кнопку "Добавить".
Введите параметры добавления веб-заданий , указанные в таблице, а затем нажмите кнопку "Создать веб-задание".
Параметр Пример значения Описание Имя myScheduledWebJob Имя, которое является уникальным в пределах приложения службы приложений. Должен начинаться с буквы или числа и не должен содержать специальные символы, отличные от "-" и "_". Отправка файлов ConsoleApp.zip Файл .zip , содержащий исполняемый файл или файл скрипта, а также все вспомогательные файлы, необходимые для запуска программы или скрипта. Поддерживаемые типы исполняемых файлов или файлов сценариев перечислены в разделе Поддерживаемые типы файлов. Тип Активируемые Типы веб-заданий описаны ранее в этой статье. Триггеры Запланированные Для надежной работы расписания включите функцию Always On. Она доступна только в ценовых категориях "Базовый", "Стандартный" и "Премиум". Выражение CRON 0 0/20 * * * * Выражения CRON описаны в следующем разделе. Новое веб-задание появится на странице Веб-задания. Если появится сообщение о том, что веб-задание было добавлено, но вы его не видите, выберите Обновить.
Запланированное веб-задание выполняется по расписанию, определенному выражением CRON. Чтобы запустить его вручную в любое время, щелкните правой кнопкой мыши веб-задание в списке и нажмите кнопку "Выполнить ", а затем подтвердите выбор.
Выражения NCRONTAB
Выражение NCRONTAB можно ввести на портале или включить в файл settings.job
, размещенный в корне ZIP-файла веб-задания, как показано в следующем примере:
{
"schedule": "0 */15 * * * *"
}
Дополнительные сведения см. в статье Планирование активируемого веб-задания.
Примечание.
Часовой пояс по умолчанию, используемый в выражениях CRON, — время в формате UTC. Если нужно использовать другой часовой пояс в выражении CRON, создайте для приложения-функции параметр приложения с именем WEBSITE_TIME_ZONE. См. сведения о часовых поясах NCRONTAB.
Управление веб-заданиями
С помощью портала Azure можно управлять отдельными веб-заданиями, выполняемыми на сайте. Перейдите к веб-заданиям> параметров, выберите веб-задание, и вы можете запустить и остановить веб-задание. Вы также можете просмотреть и изменить пароль веб-перехватчика, запускающего веб-задание.
Также можно добавить параметр приложения с именем WEBJOBS_STOPPED
и значением 1
, чтобы остановить все веб-задания, запущенные на вашем сайте. Этот метод позволяет предотвратить выполнение конфликтующих веб-заданий как в промежуточных, так и в рабочих слотах. Кроме того, задав для параметра WEBJOBS_DISABLE_SCHEDULE
значение 1
, можно отключить активируемые веб-задания на сайте или промежуточном слоте. Для слотов не забудьте включить параметр слота развертывания, чтобы сам параметр не менялся.
Просмотр журнала заданий
Для веб-задания, который вы хотите просмотреть, выберите журналы.
На странице WebJob Details (Подробности веб-задания) выберите время, чтобы просмотреть подробные сведения об одном выполнении.
На странице сведений о выполнении веб-заданий можно выбрать скачивание, чтобы получить текстовый файл журналов, или выбрать ссылку на вкладку "Таблицы веб-заданий" в верхней части страницы, чтобы просмотреть журналы для другого веб-задания.
Состояния веб-задания
Ниже приведен список распространенных состояний веб-заданий:
- Инициализация приложения запущена, а веб-задание проходит через процесс инициализации.
- Запуск веб-задания запускается.
- Запуск веб-задания выполняется.
- ОжиданиеRestart A непрерывный веб-заданий завершается менее чем за две минуты после запуска по любой причине, и Служба приложений ожидает 60 секунд до перезапуска веб-задания. Если непрерывный веб-заданий завершает работу после двухминутной отметки, Служба приложений не ожидает 60 секунд и немедленно перезагрузит веб-задание.
- Остановлен веб-задание было остановлено (обычно из портал Azure) и в настоящее время не выполняется и не будет выполняться до тех пор, пока вы снова не запустите его вручную, даже для непрерывного или запланированного веб-задания.
- Прервано это может произойти по многим причинам, например, когда долгое веб-задание достигает маркера времени ожидания.
Следующие шаги
Пакет SDK веб-заданий Azure может использоваться с веб-заданиями для упрощения многих задач программирования. Дополнительные сведения см. в разделе Информация о пакете SDK веб-заданий.