簡體   English   中英

如何在 camunda 中執行 model 異步服務任務並在 spring 引導中實現它

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM