Честно говоря, файл BPMN (он же определение процесса) должен определять, как долго он «живет».Например, если у вас есть процесс, который требует от вашего пользователя связаться с клиентом и дождаться его ответа, процесс может легко заявить, что «1 месяц» - это время ожидания перед отправкой напоминания (или любой другой реакцией на истечение времени таймера).).
Но мы также должны проводить различие между «временем жизни / жизненным циклом реального процесса», рассчитанным через BPMN-файл VS, «временем жизни / жизненным циклом процесса в вашей машине Camunda» (дляотсутствие лучшего термина) ".
Каждый экземпляр процесса в Камунде имеет уникальный идентификатор.Вам не нужно оставлять «экземпляр памяти процесса» живым до тех пор, пока он не будет завершен ... вместо этого вы можете создавать его экземпляр каждый раз, когда событие отправляется на уникальный идентификатор экземпляра процесса, чтобы обработать событие / команду и остановитьэкземпляр (не жизненный цикл процесса) после обработки события / команды.
Единственный раз, когда я работал с Камундой, это то, что мы и сделали.По сути, мы отправили в Camunda API имя BPMN-файла, идентификатор экземпляра процесса, который мы ранее запустили, и всю соответствующую информацию для обработки события / команды, которая повлияет на процесс (включая переменные процесса).
Таким образом, когда событие / команда успешно обрабатывается API Camunda, вы можете сохранить все переменные процесса в «возвращаемом сообщении» после его обработки, и вы никогда не потеряете переменные процесса, поскольку вы всегда будете «перезагрузите их из последнего «состояния» процесса (то есть ответа, который вы получили в прошлый раз, когда отправляли событие в конкретный экземпляр процесса).
Надеюсь, у меня все ясно?