我刚接触服务总线(特别是 NServiceBus)并且刚刚编写了我的第一个 Saga。
saga 旨在接收交易,然后发送消息以验证用户 ID、支付详情和产品详情等,以针对一个大部分封闭的系统(难以以编程方式访问)。现在一些功能很容易实现自动化和编写处理程序,但在少数情况下需要手动干预才能完成事务,因为没有可用的 api 来执行这些任务。现在我们将有多个人工代理来解决这个问题,所以并发性是一个问题,我想为什么不让每个用户按需拉下一条消息,从而利用 MSMQ 中固有的并发性。
我无法在 nhibernate 上的 IBus 上找到任何方法来允许按需检索下一条可用消息,因为看起来一切都是基于推送的。所以我设计了一个 UI 原型,它使用标准的 .NET System.Messaging.MessageQueue API 从 MSMQ 手动检索消息,并允许用户与之交互,然后通过 IBus 写回响应将返回发送回 saga。发送()方法。
我的主要问题是:这是否违反了 NServiceBus 的基本原则?如果没有,是否可以通过 NServiceBus API 做到这一点?
您还会通过 MSMQ 还是通过 UI 应用程序来处理并发?
干杯