Запуск процесса Activiti BPMN из потока сообщений Spring Integration EIP

Я смотрю на процессы Activiti BPMN и на то, как они лучше всего взаимодействуют с потоками сообщений Spring Integration EIP. В частности, я хотел бы знать, какой самый чистый или лучший способ запустить процесс activiti BPMN для выполнения в конце потока сообщений Spring Integration.

например Должен ли я инициировать событие запуска сообщения для процесса BPMN из последнего метода активатора службы в моем потоке EIP?

runtimeService.startProcessInstanceByMessage(messageName, processVariables);

например Должен ли я инициировать событие отсутствия запуска для процесса BPMN из последнего метода активатора службы в моем потоке EIP?

runtimeService.startProcessInstanceById(processDefinitionId, variables);

например Любые другие более подходящие методы взаимодействия?

Заранее спасибо, ПМ.


person Going Bananas    schedule 24.02.2014    source источник


Ответы (1)


мы используем Activiti/Spring с интеграцией spring и обменом сообщениями AMQP. Чтобы запустить процесс, мы используем второй подход при вызове runtimeService().startProcessInstanceByKey(), чтобы обязательно запустить ожидаемый рабочий процесс (только один).

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

Когда вы запускаете сообщение для механизма действий (первый подход), это потенциально может запускать более одного рабочего процесса в зависимости от того, как ваши рабочие процессы спроектированы и какие сообщения они прослушивают. Подумайте о двух рабочих процессах, прослушивающих одно и то же сообщение. Они оба будут запущены. Но, может быть, это именно то, что вы хотите (я не знаю).

person NeoP5    schedule 11.03.2014
comment
Привет @NeoP5, спасибо за хороший ответ. Действительно, для моего варианта использования я выбрал первый подход, поскольку целью было запустить конкретный уникальный процесс действий, а не несколько разных. Привет, ПМ. - person Going Bananas; 17.03.2014