Camunda BPMN
Экспериментальный модуль
Эксперементальный модуль является полностью рабочим и протестированным, но не гарантирует полностью стабилизированный API и может притерпеть какие либо незначительные изменения перед полной готовностью.
Модуль для подключения оркестратора BPMN процессов на основе Camunda 7
Подключение¶
Зависимость build.gradle
:
Модуль:
Зависимость build.gradle.kts
:
Модуль:
Требует подключения JDBC модуля.
Конфигурация¶
Пример полной конфигурации, описанной в классе CamundaEngineBpmnConfig
(указаны примеры значений или значения по умолчанию):
camunda {
engine {
bpmn {
jobExecutor {
corePoolSize = 5 //(1)!
maxPoolSize = 25 //(2)!
queueSize = 25 //(3)!
maxJobsPerAcquisition = 2 //(4)!
}
deployment {
tenantId = "Camunda" //(5)!
name = "KoraEngineAutoDeployment" //(6)!
deployChangedOnly = true //(7)!
resources = "classpath:bpm" //(8)!
delay = "1m" //(9)!
}
parallelInitialization {
enabled = true //(10)!
validateIncompleteStatements = true //(11)!
}
admin {
id = "admin" //(12)!
password = "admin" //(13)!
firstname = "Ivan" //(14)!
lastname = "Ivanov" //(15)!
email = "admin@mail.ru" //(16)!
}
telemetry {
logging {
enabled = false //(17)!
stacktrace = true //(18)!
}
metrics {
enabled = true //(19)!
slo = [ 1, 10, 50, 100, 200, 500, 1000, 2000, 5000, 10000, 20000, 30000, 60000, 90000 ] //(20)!
}
engineTelemetryEnabled = false //(21)!
tracing {
enabled = true //(22)!
}
}
}
}
}
- Минимальное количество живых потоков в JobExecutor
- Максимальное кличество потоков в JobExecutor
- Размер очереди задачи перед тем как задачи будут выброшены из очереди выполнения JobExecutor
- Максимальное количество задач в выполнении JobExecutor (по умолчанию равно кол-во ядер процессора умноженных на 2)
- Индетефикатор тенант загрузки ресурсов (по умолчанию отсутсвует)
- Имя загрузки ресурсов
- Флаг который говорит что следует загружать только измененные ресурсы
- Пути для поиска BPMN/FORM/DMN ресурсов которые будут загружены в оркестратор после запуска
- Задержда перед тем как начать загрузку новых ресурсов в оркестратор
- Включить ли параллельную загрузку которая слегка улучшает скорость запуска оркестратора
- Проверять ли не полные запросы настройки оркестратора
- Индетификатор администратора Camunda (необязательный)
- Пароль администратора Camunda (необязательный)
- Имя администратора Camunda (необязательный)
- Фамилия администратора Camunda (необязательный)
- Email администратора Camunda (необязательный)
- Включает логгирование модуля (по умолчанию
false
) - Включает логгирование стека ошибки (по умолчанию
true
) - Включает метрики модуля (по умолчанию
true
) - Настройка SLO для DistributionSummary метрики
- Включает сбор метрик/телеметрии оркестратора (по умолчанию
false
) - Включает трассировку модуля (по умолчанию
true
)
camunda:
engine:
bpmn:
jobExecutor:
corePoolSize: 5 #(1)!
maxPoolSize: 25 #(2)!
queueSize: 25 #(3)!
maxJobsPerAcquisition: 2 #(4)!
deployment:
tenantId: "Camunda" #(5)!
name: "KoraEngineAutoDeployment" #(6)!
deployChangedOnly: true #(7)!
resources: "classpath:bpm" #(8)!
delay: "1m" #(9)!
parallelInitialization:
enabled: true #(10)!
validateIncompleteStatements: true #(11)!
admin:
id: "admin" #(12)!
password: "admin" #(13)!
firstname: "Ivan" #(14)!
lastname: "Ivanov" #(15)!
email: "admin@mail.ru" #(16)!
telemetry:
logging:
enabled: false #(17)!
stacktrace: true #(18)!
metrics:
enabled: true #(19)!
slo: [ 0, 10, 50, 100, 200, 500, 1000, 2000, 5000, 10000, 20000, 30000, 60000, 90000 ] #(20)!
engineTelemetryEnabled: false #(21)!
tracing:
enabled: true #(22)!
- Минимальное количество живых потоков в JobExecutor
- Максимальное кличество потоков в JobExecutor
- Размер очереди задачи перед тем как задачи будут выброшены из очереди выполнения JobExecutor
- Максимальное количество задач в выполнении JobExecutor (по умолчанию равно кол-во ядер процессора умноженных на 2)
- Индетефикатор тенант загрузки ресурсов (по умолчанию отсутсвует)
- Имя загрузки ресурсов
- Флаг который говорит что следует загружать только измененные ресурсы
- Пути для поиска BPMN/FORM/DMN ресурсов которые будут загружены в оркестратор после запуска
- Задержда перед тем как начать загрузку новых ресурсов в оркестратор
- Включить ли параллельную загрузку которая слегка улучшает скорость запуска оркестратора
- Проверять ли не полные запросы настройки оркестратора
- Индетификатор администратора Camunda (необязательный)
- Пароль администратора Camunda (необязательный)
- Имя администратора Camunda (необязательный)
- Фамилия администратора Camunda (необязательный)
- Email администратора Camunda (необязательный)
- Включает логгирование модуля (по умолчанию
false
) - Включает логгирование стека ошибки (по умолчанию
true
) - Включает метрики модуля (по умолчанию
true
) - Настройка SLO для DistributionSummary метрики
- Включает сбор метрик/телеметрии оркестратора (по умолчанию
false
) - Включает трассировку модуля (по умолчанию
true
)
Исполнители¶
Регистрировать в Camunda можно как свои JavaDelegate,
которые будут зарегистрированы в контексте по своему полному имени класса (canonicalName
) так и по упрощенному имени класса (simpleName
):
Так и специализированные KoraDelegate
, которые позволяют помимо стандартных именований регистрировать исполнителя с помощью произвольного имени в контексте по средствам метода key()
:
Донастройка¶
Можно регистрировать произвольные ProcessEngineConfigurator
которые позволяют донастраивать ProcessEngine:
Плагины¶
Можно регистрировать произвольные Plugin предоставляя их как компоненты в контейнер зависимостей.