Задачи
|
Эта функция доступна исключительно в редакции OpenBPM Control Enterprise. |
Раздел Jobs предназначен для просмотра и управления асинхронными задачами движка BPM.
Задача (job) — это внутренний элемент исполнения, который движок создаёт для отложенной или асинхронной работы: срабатывания таймеров, асинхронного выполнения активностей и иных операций, выполняемых в фоне исполнителем задач (Job Executor). Подробное описание механизма приведено в разделе Job Executor.
Управлять задачами можно в трёх местах приложения:
-
на отдельном экране Jobs — по всем задачам движка;
-
на вкладке Jobs в подробном просмотре экземпляра процесса — по задачам конкретного экземпляра;
-
на вкладке Job definitions в подробном просмотре определения процесса — по определениям задач.
Экран Jobs
Экран Jobs доступен как отдельный пункт меню приложения и отображает все задачи подключённого движка BPM, независимо от экземпляра процесса.
Таблица поддерживает сортировку и фильтрацию; для каждой задачи выводится:
-
Id — идентификатор задачи (с возможностью открыть подробный просмотр).
-
Process instance — экземпляр процесса, к которому относится задача.
-
Process — определение процесса и его версия.
-
Creation date — дата и время создания задачи.
-
Due date — срок выполнения (для таймерных задач).
-
Retries — оставшееся количество попыток выполнения (значение
0означает исчерпание попыток). -
State — состояние задачи (Active / Suspended).
-
Priority — приоритет задачи.
-
Failed activity — активность, на которой возникла ошибка.
Над таблицей доступны фильтры по типу задач — Executable jobs (готовые к выполнению) и Timers (таймерные). Значения фильтров сохраняются в параметрах запроса URL, поэтому отфильтрованный список можно сохранить в закладку или передать ссылкой.
| Загрузка данных экрана выполняется отложенно, как и на других списочных экранах приложения. |
Операции на экране Jobs
Операции Retry, Activate и Suspend можно применять сразу к нескольким задачам, отметив их в таблице (массовые операции). Для отдельной задачи доступны действия View (открыть подробный просмотр), Set job priority (изменить приоритет) и Update due date (изменить срок выполнения).
Состояние исполнителя задач
В верхней части экрана располагается панель Job executor state, отражающая текущее состояние исполнителя задач (Job Executor) движка:
| Показатель | Описание |
|---|---|
Active threads |
Количество потоков, обрабатывающих готовые к выполнению задачи в данный момент. Дополнительно отображается доля активных потоков относительно размера пула в процентах. Цвет значения зависит от величины: до 50% — зелёный, от 50% до 80% — жёлтый, свыше 80% — красный. |
Thread pool size |
Максимальное количество потоков, которые могут обрабатывать задачи. Задаётся в свойстве приложения, имя которого зависит от движка: |
Executable jobs |
Количество задач, готовых к выполнению. |
Панель Job executor state отображается только при выполнении следующих условий:
-
На стороне движка BPM и на стороне OpenBPM Control настроен Actuator.
-
Для движка BPM включены метрики
executor.activeиexecutor.pool.size, а также добавлен тег с именемnameи значениемcamundaTaskExecutor(для Camunda 7) илиoperatonTaskExecutor(для Operaton или OpenBPM Engine).
Вкладка Jobs в экземпляре процесса
Вкладка Jobs доступна на экране подробного просмотра экземпляра процесса (блок Runtime) и отображает задачи выбранного экземпляра.
Для каждой задачи выводятся колонки Job, Failed activity, Create time, Retries, Priority и State; доступны действия Retry, Activate и Suspend.
| При нажатии на значение в колонке Failed activity соответствующий элемент подсвечивается на диаграмме экземпляра процесса, что помогает быстро найти место возникновения ошибки. |
Операции с задачами
| Действие | Описание |
|---|---|
Retry |
Задаёт новое количество попыток выполнения задачи, после чего исполнитель задач сможет повторно её захватить и выполнить. Доступно только для задач, у которых количество попыток равно |
Activate |
Возобновляет выполнение ранее приостановленной задачи. Доступно только для задач в состоянии Suspended. |
Suspend |
Приостанавливает выполнение активной задачи. Доступно только для задач в состоянии Active. |
Set job priority |
Изменяет приоритет выполнения задачи. |
Update due date |
Изменяет срок выполнения задачи. |
Повтор выполнения задачи
Чтобы повторно запустить завершившуюся ошибкой задачу:
-
Выберите задачу со значением Retries равным
0и нажмите Retry. -
В открывшемся окне укажите количество попыток выполнения в поле Retries (по умолчанию —
1, значение должно быть положительным).
-
Нажмите Retry, чтобы применить новое количество попыток.
Подробный просмотр задачи
Чтобы открыть подробную информацию о задаче, нажмите на её идентификатор или используйте действие View.
Экран содержит подробные сведения о задаче:
-
Job Id — идентификатор задачи с возможностью копирования.
-
Job type — тип задачи, например
timer-intermediate-transition(таймерное событие) илиasync-continuation(асинхронное продолжение). Для поля выводится локализованная всплывающая подсказка с пояснением типа. -
State — текущее состояние задачи (Active / Suspended).
-
Creation date и Due date — время создания и срок выполнения задачи.
-
Priority — приоритет задачи.
-
Retries — оставшееся количество попыток выполнения.
-
Activity и Failed activity — активность задачи и активность, на которой возникла ошибка.
-
Process — определение процесса; кнопка перехода открывает определение процесса.
-
Process instance — экземпляр процесса; кнопка перехода открывает подробный просмотр экземпляра.
-
Exception message и стектрейс — текст и полный стек вызовов ошибки выполнения.
Для задачи, завершившейся ошибкой (Retries = 0), в полях Exception message и стектрейса отображается причина сбоя, а действие Retry позволяет повторно запустить задачу.
Действия в подробном просмотре
В нижней части экрана доступны действия Retry, Activate / Suspend, Copy stacktrace (копировать стек вызовов) и Copy error message (копировать текст ошибки). Кнопка … открывает дополнительные действия — Set priority и Update due date.
Изменение приоритета
Действие Set priority позволяет задать новый приоритет выполнения задачи в поле New priority. Приоритет влияет на порядок захвата задач исполнителем задач.
Изменение срока выполнения
Действие Update due date изменяет срок выполнения (Due date) задачи. Набор параметров зависит от типа задачи.
Для таймерной задачи доступен выбор операции (Operation):
-
Set — установить срок в указанные пользователем дату и время. При выборе этой операции появляется флажок Update recurring timers; если он установлен, срок также обновляется для повторяющихся таймеров.
-
Recalculate — пересчитать срок средствами движка. При выборе этой операции можно указать исходную дату для пересчёта — текущее время (current time) или время создания задачи (creation time).
Для задач, не являющихся таймерными, достаточно указать новые дату и время выполнения без дополнительных параметров.
|
Для системных задач с типом Если к моменту выполнения действия задача уже завершена, выводится соответствующее предупреждение. |
Вкладка Job definitions в определении процесса
Вкладка Job definitions доступна на экране подробного просмотра определения процесса и отображает определения задач (Job Definitions) выбранной версии процесса.
Особенности вкладки:
-
данные обновляются при смене выбранной версии определения процесса;
-
при нажатии на значение в колонке Activity соответствующий элемент подсвечивается на диаграмме процесса;
-
для определения задачи доступны действия активации и приостановки (в зависимости от текущего состояния), а также изменение переопределяющего приоритета (overriding priority).