NServiceBus交易何时结束,何时发送给订户或所有订户都收到了他们的消息?

时间:2015-05-25 11:59:57

标签: c# transactions nservicebus publish-subscribe

我想知道NServiceBus事务何时在特定场景中结束。方案如下:

  1. 队列收到消息。
  2. 处理程序读取消息并从数据库中加载内容。
  3. Handler向3位订阅者发布活动。
  4. 交易(默认情况下)是否在以下时间结束:

    • 答:活动已经发布了?
    • B:或者当所有3个订阅者发布并收到活动时?

    请注意,订户不是系统的一部分,不一定使用NServiceBus,甚至不是.NET。

1 个答案:

答案 0 :(得分:6)

当传入消息的所有消息处理程序已成功运行(或在发生故障时回滚)时,它以提交结束。

在您的方案中,在事件发布并由基础传输接受之后。对于MSMQ,其存储转发架构意味着写入每个订户的传出队列。对于像RabbitMQ这样的代理传输,它意味着写在代理上的磁盘上。 (默认情况下。您可以通过明确更改选项来使其更加危险)