【问题标题】:What happens when I subscribe to a message using NServiceBus?当我使用 NServiceBus 订阅消息时会发生什么?
【发布时间】:2010-03-18 23:06:56
【问题描述】:

当我使用 NServiceBus 订阅某种类型的消息时

Bus.Subscribe<MyMessage>()

我实际上在做什么?我是否指定接收者类型的特定方法将在收到消息时被调用?如果是这样,该方法在什么上下文中运行 - 在静态上下文中,或者在新的父类实例的上下文中(如果是,NServiceBus 怎么知道要使用哪个构造函数)?

【问题讨论】:

    标签: messaging nservicebus


    【解决方案1】:

    会向发布者发送一条消息,告诉它“嗨,我的名字是 'queue@subscriber-machine',我想订阅 'MyMessage' 事件 - 所以当你发布这些消息时将它们发送给我。”发布者存储此信息。当发布者发布 MyMessage 事件时,这些事件会被放入订阅者的输入队列中。在订阅方,消息的处理方式与所有其他消息一样 - 所有实现 IHandleMessage 的类(其中 T 与消息多态兼容)都以适当的顺序调用。

    【讨论】:

    • 这不能回答问题的“在静态上下文中”部分。 IoC 容器是否应该使用静态处理程序对象?
    • 它为每条消息创建一个新的类实例,因此默认情况下一切都是线程安全的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    • 2017-06-25
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多