Учебное пособие: Создание запланированного веб-задания

WebJobs — это функция Azure App Service, которая позволяет запускать программу или скрипт в том же экземпляре, что и веб-приложение. Все планы службы приложений поддерживают WebJobs без дополнительных затрат. В этом учебнике описано, как создать запланированное (активируемое) веб-задание с использованием предпочитаемого стека разработки.

Предпосылки

Подготовьте веб-задание локально

  1. На этом шаге вы создадите базовый проект .NET WebJob и перейдете к корню проекта.

    dotnet new console -n webjob –framework net9.0
    
    cd webjob
    
  2. Затем замените Program.cs на следующий код, который записывает текущее время в консоль:

    using System; 
    
    class Program 
    { 
        static void Main() 
        { 
            DateTimeOffset now = DateTimeOffset.Now; 
            Console.WriteLine("Current time with is: " + now.ToString("hh:mm:ss tt zzz")); 
        } 
    }
    
  3. Из каталога webjob запустите веб-задание, чтобы подтвердить, что текущее время выводится на консоль:

    dotnet run
    

    Вы должны увидеть результат, аналогичный приведенному ниже:

    Current time with is: 07:53:07 PM -05:00
    
  4. Убедившись, что приложение работает, создайте его и перейдите в родительский каталог:

    dotnet publish -c Release -r win-x64 --self-contained true /p:PublishSingleFile=true
    
  5. (только для Linux) В корневом каталоге проекта создайте файл run.sh с следующим кодом, чтобы запустить построенный исполняемый файл:

    #!/bin/bash
    
    ./webjob
    
  6. Теперь упаковайте файлы в .zip, как показано в следующей команде:

    zip -j webjob.zip bin/Release/net9.0/win-x64/publish/webjob.exe
    

Создание запланированного веб-задания в Azure

  1. На портале Azure перейдите на страницу Служба приложений приложения службы приложений.

  2. В левой области выберите веб-задания, а затем нажмите кнопку "Добавить".

    Снимок экрана: добавление веб-задания в приложение Служба приложений на портале (запланированное веб-задание).

  3. Введите параметры добавления веб-заданий , указанные в таблице, а затем нажмите кнопку "Создать веб-задание". В поле «Загрузка файла» обязательно выберите .zip файл, который вы создали или загрузили ранее.

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

    Настройки ценность Описание
    Имя веб-задача Имя WebJob. Должен начинаться с буквы или числа и не должен содержать специальные символы, отличные от "-" и "_".
    Отправка файлов webjob.zip Файл .zip , содержащий исполняемый файл или файл скрипта. Поддерживаемые типы файлов перечислены в разделе поддерживаемых типов файлов .
    Тип Активировано Указывает, когда выполняется веб-задание: непрерывное или триггерное.
    Триггеры Запланировано Запланированные или ручные. Убедитесь, что функция «Всегда включена» активирована для надежной работы расписания.
    Выражение CRON 0 0/1 * * * * Для этого быстрого начала мы используем ежеминутное расписание. Дополнительные сведения о синтаксисе см. в разделе Выражения CRON .
  4. Новое веб-задание появится на странице Веб-задания. Если появится сообщение о том, что веб-задание было добавлено, но вы его не видите, выберите Обновить.

  5. Запланированное веб-задание выполняется по расписанию, определенному выражением CRON.

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

WebJobs — это функция Azure App Service, которая позволяет запускать программу или скрипт в том же экземпляре, что и веб-приложение. Все планы службы приложений поддерживают веб-задания без дополнительных затрат. В этом примере используется запланированное (активированное) веб-задание для вывода системного времени раз в минуту.

Предпосылки

Подготовка примера веб-задания

  1. Скачайте готовый пример проекта , чтобы быстро приступить к работе. Пример включает файл webjob.py, который выводит текущее время в консоль, как показано ниже:

    import datetime 
    
    current_datetime = datetime.datetime.now() 
    print(current_datetime) # Output: 2025-03-27 10:27:21.240752
    
  2. Извлеките скачанный ZIP-файл, а затем создайте zip-файл, содержащий только webjob.py файл (без родительского каталога). Веб-задания требуют, чтобы исполняемый файл или скрипт был в корне ZIP-файла.

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

  1. На портале Azure перейдите на страницу Служба приложений приложения службы приложений.

  2. В левой области выберите веб-задания, а затем нажмите кнопку "Добавить".

    Снимок экрана: добавление веб-задания в приложение Служба приложений на портале (запланированное веб-задание).

  3. Введите параметры добавления веб-заданий , указанные в таблице, а затем нажмите кнопку "Создать веб-задание". Для отправки файлов обязательно выберите файл .zip, созданный ранее в разделе "Подготовка примера веб-задания ".

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

    Настройки ценность Description
    Имя веб-задача Имя WebJob. Должен начинаться с буквы или числа и не должен содержать специальные символы, отличные от "-" и "_".
    Отправка файлов webjob.zip Файл .zip, который содержит webjob.py на корневом уровне. Поддерживаемые типы файлов перечислены в разделе поддерживаемых типов файлов .
    Тип Активировано Указывает, когда выполняется веб-задание: непрерывное или триггерное.
    Триггеры Запланировано Запланированные или ручные. Убедитесь, что функция «Всегда включена» активирована для надежной работы расписания.
    Выражение CRON 0 0/1 * * * * Для этого быстрого начала мы используем ежеминутное расписание. Дополнительные сведения о синтаксисе см. в разделе Выражения CRON .
  4. Новое веб-задание появится на странице Веб-задания. Если появится сообщение о том, что веб-задание было добавлено, но вы его не видите, выберите Обновить.

  5. Запланированное веб-задание выполняется по расписанию, определенному выражением CRON.

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

WebJobs — это функция Azure App Service, которая позволяет запускать программу или скрипт в том же экземпляре, что и веб-приложение. Все планы службы приложений поддерживают веб-задания без дополнительных затрат. В этом примере используется запланированное (активированное) веб-задание для вывода системного времени раз в минуту.

Предпосылки

Подготовка примера веб-задания

  1. Скачайте готовый пример проекта , чтобы быстро приступить к работе. Пример содержит файл webjob.jsJavaScript, который выводит текущее время в консоль, как показано ниже:

    // Import the 'Date' object from JavaScript
    const currentTime = new Date();
    
    // Format the time as a string
    const formattedTime = currentTime.toLocaleTimeString();
    
    // Output the formatted time to the console
    console.log(`Current system time is: ${formattedTime}`);
    
  2. Извлеките скачанный ZIP-файл, а затем создайте zip-файл, содержащий только webjob.js файл (без родительского каталога). Веб-задания требуют, чтобы исполняемый файл или скрипт был в корне ZIP-файла.

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

  1. На портале Azure перейдите на страницу Служба приложений приложения службы приложений.

  2. В левой области выберите веб-задания, а затем нажмите кнопку "Добавить".

    Снимок экрана: добавление веб-задания в приложение Служба приложений на портале (запланированное веб-задание).

  3. Введите параметры добавления веб-заданий , указанные в таблице, а затем нажмите кнопку "Создать веб-задание". Для отправки файлов обязательно выберите файл .zip, созданный ранее в разделе "Подготовка примера веб-задания ".

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

    Настройки ценность Description
    Имя веб-задача Имя WebJob. Должен начинаться с буквы или числа и не должен содержать специальные символы, отличные от "-" и "_".
    Отправка файлов webjob.zip Файл .zip, содержащий webjob.js на корневом уровне. Поддерживаемые типы файлов перечислены в разделе поддерживаемых типов файлов .
    Тип Активировано Указывает, когда выполняется веб-задание: непрерывное или триггерное.
    Триггеры Запланировано Запланированные или ручные. Убедитесь, что функция «Всегда включена» активирована для надежной работы расписания.
    Выражение CRON 0 0/1 * * * * Для этого быстрого начала мы используем ежеминутное расписание. Дополнительные сведения о синтаксисе см. в разделе Выражения CRON .
  4. Новое веб-задание появится на странице Веб-задания. Если появится сообщение о том, что веб-задание было добавлено, но вы его не видите, выберите Обновить.

  5. Запланированное веб-задание выполняется по расписанию, определенному выражением CRON.

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

WebJobs — это функция Azure App Service, которая позволяет запускать программу или скрипт в том же экземпляре, что и веб-приложение. Все планы службы приложений поддерживают веб-задания без дополнительных затрат. В этом примере используется запланированное (активированное) веб-задание для вывода системного времени раз в минуту.

Это важно

Веб-задания не поддерживаются в пользовательских контейнерах Linux на основе Alpine Linux, включая приложения Linux с помощью стека среды выполнения Java 8 и Java 11. Начиная с приложений Java 17 Linux служба приложений Azure использует образы, отличные от Alpine, совместимые с веб-заданиями.

Предпосылки

Подготовка веб-задания

  1. Скачайте пример веб-задания Java. Вы создадите .JAR файл с помощью Maven. Java-проект, расположенный по адресу project/src/main/java/webjob/HelloWorld.java , выводит сообщение и текущее время на консоль.

    import java.time.LocalDateTime; 
    
    public class HelloWorld { 
    
        public static void main(String[] args) { 
    
            System.out.println("------------------------------------------------------------"); 
            System.out.println("Hello World from WebJob: " + LocalDateTime.now()); 
            System.out.println("------------------------------------------------------------"); 
        } 
    } 
    
  2. Создайте и упаковите проект Java для создания исполняемого файла .jar , выполнив следующие команды из project/ каталога:

    mvn install 
    mvn package 
    

    Jar-файлы будут расположены по адресу project/target/webjob-artifact-1.0.0.jar после успешной сборки.

  3. Упакуйте project/target/webjob-artifact-1.0.0.jar как файл .zip.

    zip webjob.zip project/target/webjob-artifact-1.0.0.jar
    

Создание запланированного веб-задания в Azure

  1. На портале Azure перейдите на страницу Служба приложений приложения службы приложений.

  2. В левой области выберите веб-задания, а затем нажмите кнопку "Добавить".

    Снимок экрана: добавление веб-задания в приложение Служба приложений на портале (запланированное веб-задание).

  3. Введите параметры добавления веб-заданий , указанные в таблице, а затем нажмите кнопку "Создать веб-задание". Для отправки файлов обязательно выберите файл .zip, созданный в предыдущем разделе.

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

    Настройки ценность Описание
    Имя веб-задача Имя WebJob. Должен начинаться с буквы или числа и не должен содержать специальные символы, отличные от "-" и "_".
    Отправка файлов webjob.zip Файл .zip , содержащий webjob-artifact-1.0.0.jar. Поддерживаемые типы файлов перечислены в разделе поддерживаемых типов файлов .
    Тип Активировано Указывает, когда выполняется веб-задание: непрерывное или триггерное.
    Триггеры Запланировано Запланированные или ручные. Убедитесь, что функция «Всегда включена» активирована для надежной работы расписания.
    Выражение CRON 0 0/1 * * * * Для этого быстрого начала мы используем ежеминутное расписание. Дополнительные сведения о синтаксисе см. в разделе Выражения CRON .
  4. Новое веб-задание появится на странице Веб-задания. Если появится сообщение о том, что веб-задание было добавлено, но вы его не видите, выберите Обновить.

  5. Запланированное веб-задание выполняется по расписанию, определенному выражением CRON.

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

WebJobs — это функция Azure App Service, которая позволяет запускать программу или скрипт в том же экземпляре, что и веб-приложение. Все планы службы приложений поддерживают веб-задания без дополнительных затрат. В этом примере используется запланированное (активированное) веб-задание для вывода системного времени раз в минуту.

Предпосылки

Подготовка примера веб-задания

  1. Скачайте готовый пример проекта , чтобы быстро приступить к работе. Пример содержит PHP-файл webjob.php, который выводит текущее время в консоль, как показано ниже:

    <?php
    // Get the current time
    $current_time = date("Y-m-d H:i:s");
    
    // Display the current time
    echo "The current time is: " . $current_time;
    ?>
    
  2. Извлеките скачанный ZIP-файл, а затем создайте zip-файл, содержащий только webjob.php файл (без родительского каталога). Веб-задания требуют, чтобы исполняемый файл или скрипт был в корне ZIP-файла.

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

  1. На портале Azure перейдите на страницу Служба приложений приложения службы приложений.

  2. В левой области выберите веб-задания, а затем нажмите кнопку "Добавить".

    Снимок экрана: добавление веб-задания в приложение Служба приложений на портале (запланированное веб-задание).

  3. Введите параметры добавления веб-заданий , указанные в таблице, а затем нажмите кнопку "Создать веб-задание". Для отправки файлов обязательно выберите файл .zip, созданный ранее в разделе "Подготовка примера веб-задания ".

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

    Настройки ценность Description
    Имя веб-задача Имя WebJob. Должен начинаться с буквы или числа и не должен содержать специальные символы, отличные от "-" и "_".
    Отправка файлов webjob.zip Файл .zip, содержащий webjob.php на корневом уровне. Поддерживаемые типы файлов перечислены в разделе поддерживаемых типов файлов .
    Тип Активировано Указывает, когда выполняется веб-задание: непрерывное или триггерное.
    Триггеры Запланировано Запланированные или ручные. Убедитесь, что функция «Всегда включена» активирована для надежной работы расписания.
    Выражение CRON 0 0/1 * * * * Для этого быстрого начала мы используем ежеминутное расписание. Дополнительные сведения о синтаксисе см. в разделе Выражения CRON .
  4. Новое веб-задание появится на странице Веб-задания. Если появится сообщение о том, что веб-задание было добавлено, но вы его не видите, выберите Обновить.

  5. Запланированное веб-задание выполняется по расписанию, определенному выражением CRON.

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

Замечание

Часовой пояс по умолчанию, используемый для запуска выражений CRON, — Всемирное координированное время (UTC). Если нужно использовать выражение CRON в соответствии с другим часовым поясом, создайте для вашего приложения-функции настройку приложения с именем WEBSITE_TIME_ZONE. Чтобы узнать больше, см. сведения о часовых поясах NCRONTAB.

Просмотр журналов WebJob

Выберите журнал для веб-задания, созданного ранее.

Снимок экрана, на котором показано, как просматривать журналы WebJob в приложении службы приложений на портале (запланированное WebJob).

Результат должен выглядеть следующим образом.

Снимок экрана, на котором показаны выходные данные журнала WebJobs.

Очистка

Чтобы удалить веб-задание, выберите веб-задание на портале и выберите Delete.

Скриншот, показывающий, как можно удалить веб-задание на портале.

Следующий шаг

Изучите более сложные сценарии WebJob, включая триггеры и варианты развертывания