gpt4 book ai didi

c# - NServiceBus 事务何时结束,发送给订阅者或所有订阅者都收到消息时?

转载 作者:行者123 更新时间:2023-11-30 20:22:49 26 4
gpt4 key购买 nike

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

  1. 队列中收到消息。
  2. 处理程序读取消息并从数据库加载一些内容。
  3. 处理程序向 3 个订阅者发布一个事件。

交易(默认情况下)是否在以下时间结束:

  • A:事件已经发布了?
  • B:或者当事件已发布并被所有 3 个订阅者接收时?

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

最佳答案

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

在您的场景中,将在事件发布并被底层传输接受之后立即发生。对于具有存储转发架构的 MSMQ,这意味着写入每个订阅者的传出队列。对于像 RabbitMQ 这样的代理传输,这意味着写入代理上的磁盘。 (默认情况下。您可以通过显式更改选项来使其更加危险)

关于c# - NServiceBus 事务何时结束,发送给订阅者或所有订阅者都收到消息时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30437883/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com