#process #synchronous #bpmn #camunda #suspend
#процесс #синхронный #bpmn #camunda #приостановить
Вопрос:
Я хотел бы приостановить синхронный запущенный экземпляр процесса, если я столкнусь с какой-либо ошибкой, чтобы дать администратору некоторое время для исправления ошибки, а затем он сможет возобновить экземпляр процесса, используя его идентификатор.
Я пытаюсь приостановить запущенный экземпляр процесса из класса делегата Java, но, похоже, он не приостанавливается.
Ниже приведен мой код —
public class Generate_DT_PS_CCS implements JavaDelegate {
@Override
public void execute(DelegateExecution execution) throws Exception {
RuntimeService runtimeService = execution.getProcessEngineServices().getRuntimeService();
String pid =execution.getProcessInstanceId();
System.out.println("supending the instance - process id " pid);
runtimeService.suspendProcessInstanceById(execution.getProcessInstanceId());
}
}
Есть ли какие-либо проблемы с приостановкой задачи синхронной службы в Camunda?
Ответ №1:
Вы не сможете взаимодействовать с вашим processInstance через API runtimeService, если ваш processInstance не был сохранен в базе данных. Вот почему всегда рекомендуется делать событие запуска асинхронным, тогда вы можете быть уверены, что в базе данных есть запись. Так что это не проблема приостановки.