У нас есть сценарий, в котором процесс должен ждать, пока мы не получим ответ от внешней системы, что может занять много времени. Мы смоделировали это, используя задачу получения Java.
Внешняя система может отправить ответ оптом, а затем мы должны переместить процесс. Так как мы используем задачу получения, мы должны сначала запросить идентификатор выполнения на основе некоторого бизнес-параметра (скажем, переменной процесса или идентификатора экземпляра процесса). После получения идентификатора выполнения мы должны вызвать это в цикле.
runtimeService.trigger(executionId)
У меня есть два вопроса:
- Запрос, а затем запуск по одному - это трудоемкий процесс, и мы не получаем необходимой пропускной способности. Мы можем изменить нашу логику и отправить идентификатор выполнения в качестве идентификатора корреляции, который может помочь нам сохранить запрос.
- Правильно ли мы моделируем его? Должны ли мы использовать сигналы (ловить событие) здесь. Потому что бизнес-данные хранятся вне активности, и мы уже обновили это. Activiti просто хранит идентификатор предприятия как процесс var.