Сервис управления задачами процесса

Описание

ru.bgcrm.core.task.process.ProcessTaskService

Сервис зарегистрирован в глобальном контексте. Соответственно может быть вызван из контекста.
Пример:
public class Test {
    ProcessTaskService processTaskService = ServerContext.lookup(ProcessTaskService.class);
}

Функционал

  • Удобное управление задачами в рамках конкретного типа процесса

  • Возможность отображения задач (запланированных и исполненных) в рамках конкретного процесса

  • Наличие статусов задач (ожидание, выполнение, выполнено, ошибка выполнения, отменено)

  • Возможность настраивать количество попыток выполнения задачи

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

  • Возможность работы раннера задач без планировщика

  • Интеграция задач с конструктором автоматизаций

Методы

ProcessTaskService

Получение задачи процесса по ID:
Поиск задач:
Поиск задачи для выполнения:
Создание задачи процесса:
Перевод задачи процесса в статус 'Выполняется':
  • fun handle(id: Int)

Перевод задачи процесса в статус 'Выполнено':
  • fun complete(id: Int)

Перевод задачи процесса в статус 'Ошибка':
  • fun error(id: Int, message: String)

Перевод задачи процесса в статус 'Отменено':

Модели

ProcessTask

Field Type Default Description

id

Int

Id задачи процесса

processId

Int

Id процесса

task

Task

Задача

config

String?

Конфигурация задачи

scheduledTime

Date

Запланированное время выполнения задачи

executedTime

Date?

Время выполнения задачи

status

TaskStatus

Статус

retries

Int

0

Попытки выполнения задачи

result

String?

Результат выполнения задач

maxRetries

Int

0

Максимальное количество попыток

cancellable

Boolean

Можно отменить

CreateProcessTaskRequest

Field Type Description

processId

Int

Id процесса

task

Task

Задача

config

String?

Конфигурация задачи

scheduledTime

Date

Запланированное время выполнения задачи

maxRetries

Int

Максимальное количество попыток

ProcessTaskSearchRequest

Field Type Description

processId

Int?

ID процесса

taskId

Int?

ID задачи

statuses

Set<TaskStatus>?

Статусы

scheduledTime

Period?

Период времени планирования

executedTime

Period?

Период времени выполнения

cancellable

Boolean?

Отменяемая задача

TaskStatus

Status Description

PENDING

В ожидании

IN_PROGRESS

Выполняется

EXECUTED

Выполнено

ERROR

Ошибка выполнения

CANCELLED

Отменено

Task

Field Type Description

id

Int

Id задачи

title

String

Наименование задачи

clazz

String?

Класс обработчик задачи

script

String?

Скрипт

enabled

Boolean

Включена

Матрица статусов

С: ↓ На: → PENDING IN_PROGRESS EXECUTED ERROR CANCELLED

PENDING

x

x

IN_PROGRESS

x

x

x

EXECUTED

ERROR

x

x

CANCELLED