2017-07-15 99 views

回答

0

Activiti任務運行在主引擎運行的相同進程中。

根據流中是否存在異步活動,它們將在調用其中一個API或後臺線程池時使用的線程中運行。

也就是說,沒有什麼能夠阻止您在單獨的進程中運行工作流的特定步驟(例如:長時間運行的批處理)。這可以通過多種方式來實現,但我喜歡的方式是將任務建模爲「人工任務」,然後使用外部調度程序使用Activiti的API(REST或Java)挑選那些用於實際執行的任務。這種方法相當具有可擴展性,並避免了在事務管理過於複雜和/或需要很長時間執行時可能出現的與事務管理相關的一些缺陷。

0

如果Activiti引擎嵌入您的應用程序中,任務將在調用引擎API(可能是服務任務或用戶任務)的線程中運行。但是我從你的問題中瞭解到,也許你有興趣使用REST API調用Activiti引擎remotely,在這種情況下,顯然這些任務作爲容器託管Activiti引擎中的不同線程運行。