# Интерфейс менеджера заданий

Интерфейс менеджера заданий позволяет создавать и настраивать задания, управлять расписаниями, запускать задания вручную и контролировать результаты выполнения.

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

## Общий вид

![Менеджер заданий](/service/img_serv/interface.png)

Интерфейс состоит из трех областей:

1. Дерево групп объединяет задания по назначению.
2. Список показывает задания выбранной группы и их текущее состояние.
3. Вкладки содержат параметры, расписания и журналы выбранного задания.

## Группы заданий

Группы упрощают навигацию и не влияют на время или порядок выполнения заданий. Операция **Сменить группу** перемещает выбранное задание в другую группу.

## Параметры задания

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

### Настраиваемые параметры

| Параметр | Описание |
|---|---|
| Наименование | Название, под которым задание отображается в интерфейсе |
| Системное имя | Имя, используемое при регистрации и поиске задания |
| Включен | Разрешает выполнение задания |
| Тип задания | Определяет операцию и специализированные вкладки |
| Группа задания | Определяет положение задания в дереве |
| Исполнитель | Пользователь выполнения |
| Описание | Поясняет назначение и условия применения |
| Срок хранения логов, дней | Определяет срок хранения завершенных событий и сообщений |
| Количество параллельно запускаемых внеплановых заданий | Ограничивает число одновременных внеплановых запусков |
| Трассировка включена | Включает сбор дополнительных диагностических сведений |
| Требуется перезапуск | Разрешает повторный запуск после ошибки или прерывания сессии |
| Максимальное количество перезапусков | Ограничивает число повторных попыток |
| Источник | Показывает объект, на основании которого было создано задание, если источник задан |

Параметры перезапуска задания используются как начальные значения для новых расписаний и внеплановых запусков. В отдельном расписании эти значения можно изменить.

### Вычисляемые параметры

| Параметр | Описание |
|---|---|
| Индикатор состояния | Сводная оценка активности и результата последнего запуска |
| Статус | Текущее состояние задания в планировщике |
| Время предыдущего запуска | Дата и время последнего запуска |
| Время следующего запуска | Ближайшее время запуска по включенному расписанию |
| Задержка запуска | Отклонение фактического времени запуска от запланированного |
| Последнее состояние в журнале | Результат последнего события запуска |
| Среднее время выполнения | Средняя продолжительность завершенных запусков |

## Создание задания

1. Выберите группу, в которой должно находиться задание.
2. Создайте запись задания.
3. Укажите наименование, системное имя, тип и исполнителя.
4. Заполните общие параметры выполнения.
5. Заполните специализированную вкладку выбранного типа задания.
6. Создайте и включите хотя бы одно расписание, если требуется плановый запуск.
7. Включите задание.
8. Проверьте время следующего запуска и состояние задания.

![Создание задания](/service/img_serv/sozdanie_zadaniya.png)

Задание можно сохранить выключенным и завершить настройку позднее. Включение разрешает выполнение уже сохраненной конфигурации, а не создает задание повторно.

## Вкладки задания

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

**Расписание**

Содержит одно или несколько независимых расписаний. Расписание определяет период действия и моменты планового запуска.

**Интервалы запуска**

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

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

**Журнал**

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

Для события доступны:

- состояние;
- запланированное и фактическое время;
- время завершения;
- пользователь выполнения;
- параметры;
- признак внепланового запуска;
- признак необходимости перезапуска;
- количество оставшихся попыток перезапуска;
- сообщения;
- текст ошибки;
- продолжительность.

На вкладке можно просматривать сообщения и выполнять операции:

- **Отменить выполнение выбранных записей** — останавливает выполняющиеся события или отменяет ожидающие внеплановые запуски;
- **Перезапустить выбранные записи** — останавливает или отменяет незавершенные выбранные события и повторно планирует их на текущее время;
- **Очистить историю выполнения задач** — удаляет завершенную историю;
- **Очистить историю выполнения задач (включая запланированные и исполняющиеся)** — полностью удаляет историю, включая активные события.

```{attention}
Полную очистку, включающую запланированные и исполняющиеся события, применяйте только после проверки их состояния. Она может нарушить корректную работу планировщика.
```

Остановка выполняющегося события прерывает его серверное выполнение. Прикладные изменения, которые не были зафиксированы к моменту остановки, могут быть отменены. Подробности восстановления и остановки приведены на странице [Администрирование и диагностика](040_administration.md).

**Журнал Quartz**

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

Перед просмотром укажите каталог журналов планировщика.

Путь: `Приложение «Настройка системы» > Настройки и сервисы > Настройка модулей системы > Общие настройки модулей > btk > Путь до логов планировщика`.

На вкладке можно сформировать отчет и загрузить файлы из настроенного каталога.

**Скрипт**

Доступна для задания, которое выполняет JEXL-скрипт. При запуске из интерфейса скрипт выполняется от имени пользователя, указанного в поле **Исполнитель**.

**Настройка очистки**

Доступна для задания типа «Очистка данных». На вкладке задают очищаемые классы или таблицы, сроки хранения и способы удаления.

Подробности приведены на странице [Очистка данных](030_cleanup.md).

**Характеристики**

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

**Ограничение потоков по времени**

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

## Настройка расписания

На вкладке **Расписание** можно выбрать один из вариантов периодичности:

- однократно;
- ежедневно;
- еженедельно;
- ежемесячно;
- пользовательское.

Набор доступных полей зависит от выбранного варианта.

| Поле | Описание |
|---|---|
| Наименование | Название расписания |
| Включен | Разрешает плановые запуски по этому расписанию |
| Начало | Дата и время начала действия |
| Конец | Дата и время окончания действия |
| Дни недели | Дни недели для запуска |
| Дни месяца | Номера дней месяца для запуска |
| Приращение дней | Шаг повторения в днях |
| Месяцы | Месяцы выполнения |
| Часы | Часы выполнения |
| Минуты | Минуты выполнения |
| Секунды | Секунды выполнения |
| Описание | Назначение расписания |
| Требуется перезапуск | Разрешает повторный запуск события после ошибки или прерывания |
| Максимальное количество перезапусков | Ограничивает число повторных попыток |

### Варианты периодичности

| Вариант | Применение |
|---|---|
| Однократно | Один запуск в заданные дату и время |
| Ежедневно | Запуск в заданное время каждый день или через заданное число дней |
| Еженедельно | Запуск в выбранные дни недели |
| Ежемесячно | Запуск в выбранные дни месяца и месяцы |
| Пользовательское | Самостоятельная настройка сочетания дней, месяцев и времени |

Поля расписания преобразуются в Cron-выражение автоматически. Пользователю не требуется вводить Cron-выражение вручную:

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

Если в поле выбрано несколько значений, запуск выполняется для каждого допустимого сочетания. Период действия ограничивается полями **Начало** и **Конец**. Для ежемесячного расписания можно выбрать последний день месяца, но его нельзя одновременно указать вместе с конкретными днями месяца.

### Создание расписания

1. Откройте вкладку **Расписание**.
2. Создайте запись.
3. Выберите вариант периодичности.
4. Заполните доступные параметры.
5. Задайте даты начала и окончания действия.
6. При необходимости настройте повторные попытки.
7. Включите расписание.
8. Включите задание.
9. Проверьте рассчитанное время следующего запуска.

![Настройка расписания](/service/img_serv/raspisanie.png)

Включение задания не заменяет включение расписания. Для планового выполнения должны быть включены обе записи.

## Запуск задания

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

1. Создайте и настройте расписание с периодичностью «Ежедневно», «Еженедельно», «Ежемесячно» или «Пользовательское».
2. Включите расписание.
3. Включите задание.
4. Проверьте поле **Время следующего запуска**.

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

**Отложенный запуск**

1. На вкладке **Расписание** создайте запись.
2. Выберите периодичность «Однократно».
3. Укажите дату начала и время запуска.
4. Включите расписание и задание.
5. Проверьте поле **Время следующего запуска**.

Такой запуск создается через обычное расписание и не требует вызова из прикладного кода.

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

1. Выберите включенное задание.
2. Выполните операцию **Выполнить задачу**.
3. Откройте вкладку **Журнал** и проверьте созданное событие.

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

**Повторный запуск события**

1. Откройте вкладку **Журнал**.
2. Выберите событие.
3. Выполните операцию **Перезапустить выбранные записи**.
4. Проверьте новое состояние и сообщения события.

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

После запуска задание выполняется в фоновом режиме. Интерфейс можно закрыть, а состояние и результат выполнения позднее проверить на вкладке **Журнал**.

Программный запуск описан в разделе [«Одноразовый запуск»](050_technical.md#одноразовый-запуск), регистрация прикладных фоновых процедур — в разделе [«Фоновые процедуры»](050_technical.md#фоновые-процедуры).

## Управление заданиями

**Включение и выключение**

- **Включить выделенные задания** разрешает выполнение выбранных заданий и передает их активные расписания планировщику.
- **Выключить выделенные задания** запрещает новые запуски выбранных заданий и исключает их расписания из планирования.

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

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

**Дополнительные операции**

- **Сменить группу** перемещает задание в другую группу.
- **Открыть отчет по задачам** показывает активные выполнения и помогает найти связанную серверную сессию при диагностике долгого или зависшего запуска.
- **Открыть журнал** открывает журнал Quartz в отдельном окне.
- **Сгенерировать ключи** создает пару ключей для аутентификации планировщика; публичный ключ сохраняют в настройках ApplicationServer, приватный — в конфигурации `jobscheduler`.
- **Синхронизировать все** повторно передает планировщику конфигурацию включенных заданий и расписаний.

```{attention}
Используйте операцию **Синхронизировать все** только для устранения подтвержденного рассогласования. Операция пересоздает техническую конфигурацию планировщика. Подробности приведены на странице [Администрирование и диагностика](040_administration.md).
```

## Трассировка

Признак **Трассировка включена** добавляет в журнал диагностические сведения о выполнении методов во время события. Трассировка увеличивает объем журналирования. Включайте ее для расследования конкретной проблемы и отключайте после завершения анализа.

## Полезные системные задания

- **Запуск процедур в фоновом режиме** обрабатывает зарегистрированные прикладные фоновые процедуры. Это служебное задание, а не отдельная пользовательская операция запуска.
- **Очистка таблиц** запускает настроенные правила удаления устаревших служебных данных.
