2016-08-15 49 views
0

我有2個命令 1)DebitCommand(借記信用卡)蝟相關的命令失敗建議

2)CreditCommand(信用賬戶)

從我們的用例立體借貸組合是一個原子操作它們連接到兩個不同的系統(休息呼叫)。

當CreditCommand斷路器短路時,借方無意義,否則我們需要退還貨款。這實際上增加了不必要的呼叫。有沒有什麼方法可以解決這個問題。

我的想法:

方法1:合併DebitCommand和CreditCommand成一個單一的信貸命令 方法2:在DebitCommand Execute調用一些如何讓CreditCommand的電路的狀態和斷路器分閘只有當允許或一半打開或恢復。

如果有任何一個誰也與這個用例有經驗,請你幫助你如何解決這個用例

回答

0

方法2查詢電路狀態作爲是否要發出呼叫,(僞基礎代碼:if (circuit is healthy) { Place call through circuit })不是一個明智的方式來進行,即使可用。在高度併發/多線程的環境中,電路狀態可以在評估if條件和放置內部調用之間改變。所以這種方法不能保證第二次通話會成功。