2017-08-08 19 views
0

使用activiti可以設計並行任務,但是這些任務是在內部順序執行的(由同一個線程執行)。使用Activiti在獨立線程中處理

我需要以異步方式執行任務,然後在任務完成後「加入」任務。

的過程是:

preparation -> execute task 1 
      -> execute task 2 at the same time 
     -> Then once both are finished, go one 

這是優化的問題,因爲任務1和2是網絡服務調用,並可能需要大量的時間。

從我閱讀的所有內容來看,這對activiti來說是不可能的。使用異步任務,無法正確連接(檢測到兩者都已完成)。第一個完成的任務是確定的,但第二個拋出一個OptimisticLockException並重新啓動(這是不可接受的)。

也許有一些我誤解了,這是可能的,甚至容易嗎?有人成功了嗎?

回答

0

我不確定我是否明白你的問題。 但Activiti確實支持異步處理。

要加入兩個異步進程,您可以創建另一個任務,等待兩個異步任務完成。

+0

這正是我的問題。我試圖把2個異步任務放到一個並行網關中,但它失敗了,成爲樂觀鎖定異常。文檔解釋說,完成「勝利」的第一項任務和其他任務由於aushc異常而失敗。根據你的解釋,應該用什麼樣的任務來加入問題任務? – Rolintocour