Проектирование одновременного запуска процесса и корреляций с Camunda - PullRequest
0 голосов
/ 18 февраля 2019

Я планирую простой рабочий процесс (показанный синим справа), который должен принимать посылки, принадлежащие к тому же заказу, и продолжать поток после того, как все посылки будут собраны.

enter image description here

Получение посылок происходит через REST, и я планирую соотнести его с нужным экземпляром рабочего процесса, используя order_id, который является частью запроса.Служба REST работает в кластере, поэтому в данный момент блокировка в виртуальной машине невозможна.

Я вижу две серьезные проблемы с этим дизайном:

  • одновременный входящийзапросы на отправку не смогут коррелировать, поэтому они будут запускать несколько экземпляров рабочего процесса одновременно

  • , даже если поток запускается один раз успешно, Camunda выдает исключение одновременной модификации, когда одновременные запросы на отправку пытаютсяобновить переменные этого же экземпляра рабочего процесса

Как мне спроектировать этот сценарий, чтобы избежать этих проблем?

1 Ответ

0 голосов
/ 18 февраля 2019

Как насчет обработки отправлений в подпроцессе и уведомления основного процесса, как только все будет отправлено.Примерно так:

enter image description here

Редактировать: Обновлена ​​диаграмма на основе комментариев.

...