Общие сведения#

Менеджер заданий предназначен для запуска регламентных процедур по расписанию. Он позволяет выполнять операции с заданной периодичностью или в определенное время, например запускать ночью ресурсоемкие расчеты, выполнять обмен данными с внешними системами, отправлять уведомления или очищать устаревшие данные.

Задания выполняются в фоновом режиме. Для каждого запуска сохраняются состояние, время выполнения, сообщения и сведения об ошибках.

Задание также можно запустить вручную, программно из прикладного кода или однократно в указанное время.

Путь: Приложение «Настройка системы» > Настройки и сервисы > Менеджер заданий.

В общем случае работа с менеджером состоит из следующих действий:

  1. Пользователь создает или выбирает задание.

  2. Настраивает одно или несколько расписаний.

  3. Включает нужные расписания и само задание.

  4. Проверяет время следующего запуска.

  5. Контролирует состояние и сообщения выполнения в журнале.

Задание также можно запустить вручную или вызвать из прикладного кода без добавления постоянного расписания. Поддерживаемые способы регистрации и запуска из прикладного кода приведены на странице «Техническое устройство и разработка».

Менеджер поддерживает:

  • настройка нескольких независимых расписаний для одного задания;

  • плановый, ручной, отложенный и программный запуск;

  • выполнение от имени назначенного пользователя;

  • ограничение времени, в которое разрешено выполнение;

  • управление числом одновременных внеплановых запусков;

  • повторный запуск после ошибки или прерывания сессии;

  • хранение состояния, времени, параметров, сообщений и ошибок каждого запуска;

  • автоматическая очистка устаревших данных;

  • наблюдение за состоянием заданий и планировщика.

Основные понятия#

Понятие

Значение

Задание

Описание выполняемой операции и ее общих параметров: типа, исполнителя, активности и политики восстановления

Расписание

Правило планового запуска с заданной периодичностью и периодом действия

Событие запуска

Один конкретный плановый, ручной или программный запуск задания

Журнал задания

История событий запуска с их состояниями, параметрами, сообщениями и ошибками

Задание и событие запуска — разные сущности. Операция Выполнить задачу не создает копию задания, а регистрирует новое событие запуска для существующего задания.

Типы заданий#

Тип определяет назначение задания, выполняемое действие и доступные вкладки настройки. В базовой поставке менеджер поддерживает:

  • JEXL-скрипт — выполняет заданный программный сценарий;

  • Очистка данных — удаляет устаревшие записи по настроенным правилам хранения.

Прикладные модули могут регистрировать дополнительные типы и связанные с ними вкладки. Поэтому доступный состав типов зависит от поставки и конфигурации системы.

Виды запуска#

Плановый запуск

Планировщик запускает задание в момент, рассчитанный по активному расписанию. У одного задания может быть несколько расписаний, каждое из которых включается независимо. Расписание может задавать как повторяющееся выполнение, так и однократный запуск в указанные дату и время.

Плановый запуск выполняется, пока включены задание и расписание и действует заданный период. Пропущенное время периодического запуска не выполняется задним числом.

Ручной запуск

Пользователь запускает включенное задание операцией Выполнить задачу. Менеджер создает отдельное внеплановое событие на текущее время. Ручной запуск не изменяет постоянные расписания и отображается в общем журнале задания.

Одновременное выполнение нескольких внеплановых событий зависит от настройки конкурентности задания.

Программный и отложенный запуск

Одноразовый запуск можно создать программно и передать ему параметры, пользователя выполнения и время, не ранее которого нужно начать обработку. Такой запуск использует существующее задание и не создает постоянное расписание.

Отложенный запуск доступен и в интерфейсе: пользователь создает расписание с периодичностью «Однократно» и указывает будущие дату и время. Поэтому программный вызов требуется только тогда, когда запуск формирует прикладная логика.

Независимо от способа запуска менеджер выполняет задание в фоновом режиме. Пользователю не требуется оставлять интерфейс открытым и ожидать завершения операции. Состояние, сообщения и результат выполнения сохраняются в журнале задания.

Пошаговые действия в интерфейсе приведены на странице «Интерфейс менеджера заданий». Регистрация и запуск из прикладного кода описаны на странице «Техническое устройство и разработка».

Как проходит выполнение#

  1. Система получает основание для запуска: наступление расписания, действие пользователя или программный вызов.

  2. Менеджер создает либо открывает событие запуска.

  3. Планировщик передает выполнение серверу приложений.

  4. Сервер приложений проверяет разрешенный интервал и выполняет операцию от имени назначенного пользователя.

  5. Менеджер сохраняет состояние, время, параметры, сообщения и сведения об ошибке, если она возникла.

  6. Интерфейс показывает результат в журнале задания и обновляет статистику выполнения.

Менеджер хранит сведения о ходе и результате запуска, но не сохраняет произвольный бизнес-результат выполняемой операции. Само задание отвечает за создаваемые документы, измененные данные, сформированные файлы и другие прикладные результаты.

Журналы#

Менеджер использует два разных вида журналов:

  • Журнал задания содержит отдельные события запуска, их состояния, параметры, сообщения и ошибки. Его используют для контроля конкретного задания.

  • Журнал Quartz содержит технические сообщения внешнего планировщика. Его используют при диагностике проблем запуска и связи с сервером приложений.

Ограничения и особенности#

  • Выключенное задание нельзя запустить стандартной операцией Выполнить задачу.

  • Выключенное расписание не создает плановых запусков, даже если само задание включено.

  • Запуск вне разрешенного временного интервала завершается с ошибкой в журнале.

  • Результат выполнения зависит от полномочий назначенного пользователя.

  • Плановый запуск требует доступности базы данных, планировщика и сервера приложений.

  • Если задание сохранило часть прикладных данных до ошибки, повторный запуск может обработать их повторно. Такие задания должны безопасно учитывать уже выполненные изменения.

Особенности принудительной синхронизации, восстановления прерванных запусков, пропущенных срабатываний и конкурентного выполнения описаны на странице Администрирование и диагностика.