2016-08-15 53 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条件和放置内部调用之间改变。所以这种方法不能保证第二次通话会成功。