Как долго должен жить процесс в Камунде - PullRequest
0 голосов
/ 03 июня 2019

Как долго процесс должен жить в рабочем процессе Camunda BPMN?

У меня есть процесс, который может запускаться несколько раз в течение срока службы продукта. Мне нужно отслеживать и обновлять точки данных, которые этот рабочий процесс обрабатывает для продукта.

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

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

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

EDIT:

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

Упрощенная адресная диаграмма

1 Ответ

0 голосов
/ 03 июня 2019

Честно говоря, файл BPMN (он же определение процесса) должен определять, как долго он «живет».Например, если у вас есть процесс, который требует от вашего пользователя связаться с клиентом и дождаться его ответа, процесс может легко заявить, что «1 месяц» - это время ожидания перед отправкой напоминания (или любой другой реакцией на истечение времени таймера).).

Но мы также должны проводить различие между «временем жизни / жизненным циклом реального процесса», рассчитанным через BPMN-файл VS, «временем жизни / жизненным циклом процесса в вашей машине Camunda» (дляотсутствие лучшего термина) ".

Каждый экземпляр процесса в Камунде имеет уникальный идентификатор.Вам не нужно оставлять «экземпляр памяти процесса» живым до тех пор, пока он не будет завершен ... вместо этого вы можете создавать его экземпляр каждый раз, когда событие отправляется на уникальный идентификатор экземпляра процесса, чтобы обработать событие / команду и остановитьэкземпляр (не жизненный цикл процесса) после обработки события / команды.

Единственный раз, когда я работал с Камундой, это то, что мы и сделали.По сути, мы отправили в Camunda API имя BPMN-файла, идентификатор экземпляра процесса, который мы ранее запустили, и всю соответствующую информацию для обработки события / команды, которая повлияет на процесс (включая переменные процесса).

Таким образом, когда событие / команда успешно обрабатывается API Camunda, вы можете сохранить все переменные процесса в «возвращаемом сообщении» после его обработки, и вы никогда не потеряете переменные процесса, поскольку вы всегда будете «перезагрузите их из последнего «состояния» процесса (то есть ответа, который вы получили в прошлый раз, когда отправляли событие в конкретный экземпляр процесса).

Надеюсь, у меня все ясно?

...