0

我使用 NServiceBus 创建了一个传奇,它请求外部服务以获取客户信息并超时。超时后,传奇检查外部服务是否有响应。作为回应,我有相应客户的数据,现在我必须检查相应客户是否存在于我们的系统中(如果他不存在 - 我必须创建他),然后我必须创建一些额外的审计实体来引用那个客户(如果我有创建它们所需的所有信息)。

我想知道我应该如何检查特定客户是否存在以及何时不存在如何创建他。

到目前为止,我有几个想法:

  • 从消息处理程序内部调用 WCF 服务(检查、创建)

  • 通过 NSB 向客户有界上下文发送消息并等待带有 ID 的响应。

4

1 回答 1

3

您可以为此利用 NServiceBus 消息处理管道。将“客户服务”中的处理程序配置为首先运行,该处理程序检查客户的存在并在必要时创建它们,最后在正在处理的原始消息上设置 CustomerID 属性,以便下一个处理程序知道它是什么。

这为您提供了围绕整个过程的事务一致性的好处。

您描述的发布/订阅模型也可以工作。我不太喜欢它,因为您要对事件进行一种请求/响应,并且不清楚谁真正对客户信息负责(因为所需的数据来自不负责的发布者)顾客)。

如果不深入您的领域,就很难更有规范性。

于 2012-08-31T07:09:35.190 回答