Можно ли использовать jBPM Executor в качестве планировщика для бизнес-процессов?
- Может ли исполнитель jBPM использоваться для планирования ВСЕХ бизнес-процессов (или такой подход был бы неправильным)?
Краткое объяснение логики, стоящей за этим вопросом: почти все примеры, которые я нашел до сих пор, представляют исполнитель jBPM как способ: асинхронно вызывать ЧАСТИ бизнес-процессов (обработчики рабочих элементов) или простые классы, которые содержат некоторую бизнес-логику.
Кроме того, это выдержка из javadoc интерфейса команд jBPM (executor работает с командами):
/**
* Executor's Command are dedicated to contain purely business logic that should be executed.
* It should not have any reference to underlying process engine and should not be concerned
* with any process runtime related logic such us completing work item, sending signals, etc.
* ...
*/
С другой стороны, я нашел запись в блоге Мачея Свидерски, в которой написано, что исполнитель поддерживает: "экземпляр процесса асинхронного запуска".
- Если через jBPM executor могут быть запущены ВСЕ бизнес-процессы, есть ли у вас опыт расширения функций исполнителя? Я имею в виду добавление дополнительных функций, подобных Quartz, например, поддержка бизнес-календарей, цепочки заданий, группировка заданий.
Заранее спасибо за все ответы.
1 ответ
Я разговаривал с Мацей Свидерски (основной разработчик jBPM) на IRC-канале jBPM и отвечаю:
ad 1. Да, вы можете сделать это с помощью этой команды: https://github.com/kiegroup/jbpm/blob/master/jbpm-flow/src/main/java/org/jbpm/process/core/async/AsyncStartProcessCommand.java
объявление 2. Job Executor не может быть легко расширен для предоставления функций, подобных Кварцу. Это служит другой цели. Следует использовать, например, Кварц, когда такие расширенные опции необходимы.