Экземпляр синхронного процесса Camunda не будет приостановлен

#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 не был сохранен в базе данных. Вот почему всегда рекомендуется делать событие запуска асинхронным, тогда вы можете быть уверены, что в базе данных есть запись. Так что это не проблема приостановки.