2013-11-01 61 views
2

或者我應該說,實施平行分割任務的正確方式/工具是什麼?使用狀態機模式可以實現並行分割工作流程?

我有一個工作流中涉及的實體的單一狀態/狀態。我可以爲每個並行路徑添加一些額外的狀態,但有沒有更好的方法來做到這一點?

感謝

編輯

這是不是一個真正的完整的答案,只是還沒有,但我落得這樣做的很多研究都是創建一個狀態機一類的包裝後。我看到的現有工具只是太多開銷,並沒有滿足我的需求。每個狀態機都是一個「進程」,進程的每個狀態都是「進程」的一部分。一個會話又有一個會話密鑰,它只是每個進程當前狀態的集合。

我序列化的會話密鑰標記爲一字符串,所以持久會話看起來是這樣的:

"enroll=get-contact|verify=null|authorize=null" 

的各種狀態觸發器可以指定並行分割爲目標。實際上它似乎工作得很好。

+0

您正在使用哪種框架或工具?這是一個抽象的問題,是與特定環境有關的問題嗎? –

+0

看看[這個問題](http://stackoverflow.com/questions/19728698/creating-parallel-workflow-using-stateless)。我目前使用無國籍,但我的問題是一般。 – Paul

+0

@Paul - 此鏈接仍然有效嗎?我很好奇你對無國界做了什麼。 –

回答

2

狀態機與狀態之間的執行語義沒有關聯。一個狀態機所做的就是呈現狀態之間的轉換,以及在轉換期間發生驗證和運行的邏輯。

在轉換期間運行的邏輯本身可以並行運行,例如產生新線程。線程可以與執行異步運行,也可以派生它們,然後作爲主線程的一部分連接回主線程。