[英]How to model async service task in camunda and implement it in spring boot
我在 spring 啟動應用程序中使用 Camunda 作為 bpmn 引擎
主要思路:第一個進程在controller啟動,響應返回給客戶端后,應該啟動第二個進程。 我使用@Async(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);
}
}
問題:有沒有辦法在一個過程中完成這兩個過程(如兩個過程所示)? 我應該如何在 spring 啟動應用程序中實現這個? 兩個過程
您需要使用Call Activity Task
,將BPMN
指定為CallActivity Type
,並在屬性面板的Called Element
字段中指定相應的流程 ID。 另外不要忘記取消選中子流程的Startable
復選框。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.