Я использую Camunda в качестве движка bpmn в моем приложении весенней загрузки
Основная идея: Первый процесс запускается в контроллере, а после того, как ответ возвращается клиенту, Второй процесс должен начаться. Я делаю это с помощью @ Asyn c (Spring framework) для запуска второго процесса, и у меня есть две диаграммы bpmn: firstProcess secondProcess
Простая реализация идеи :
@RestController
public class SimpleController {
@Autowired
private CustomService asyncService;
@Autowired
private CustomService syncService;
@GetMapping(value = "/request")
public ResponseEntity<String> sendQuestion() {
//start process described in first.bpmn
syncService.startProcess("firstProcess");
//start process described in second.bpmn asynchronously
//controller responses to client without waiting for ending secondProcess
asyncService.startProcess("secondProcess");
return new ResponseEntity<>("OK", HttpStatus.OK);
}
}
@Service
public class AsyncService implements CustomService {
@Autowired
private RuntimeService runtimeService;
@Async
public void startProcess(String key) {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
//
}
runtimeService.startProcessInstanceByKey(key);
}
}
Вопросы: Есть ли способ выполнить эти два процесса в одном процессе (как показано в обоих процессах)? Как мне реализовать это в приложении весенней загрузки? bothProcess