【问题标题】:Difference between Handler and Consumer in MassTransitMassTransit中处理程序和消费者之间的区别
【发布时间】:2016-06-30 14:17:14
【问题描述】:

MassTransit 中的处理程序和消费者有什么区别?我见过使用其中一种的示例,但从概念上讲,我不清楚两者之间的区别是什么,以及您为什么要选择其中一种。

【问题讨论】:

    标签: masstransit


    【解决方案1】:

    消费者是您注册的一种类型,它具有专门的处理程序来处理消费者对象的生命周期。

    处理程序实际上只是一个通用事件处理程序。

    如果只需要一个小的Action<> 块来解决对您的消息的任何操作,您将使用处理程序。如果您想注册一个具有生命周期的类型来解决对消息的任何操作,您将使用消费者。通常,您最终会想要一个消费者,因为希望您的容器解决该类型的依赖关系,而不是仅仅将它们放在您的处理程序的范围内。但是处理程序非常适合小事情或请求响应场景。

    【讨论】:

    • 根据您的描述,我认为每条消息都会有一个 Consumer 实例?如果我在同一个类上设置一个故障处理程序,在处理故障时会使用最后一个实例,还是会是一个全新的实例?
    • 取决于注册。如果您向 IoC 容器助手注册,它可以让容器维护生命周期。还要考虑在消息之间共享状态会很麻烦,因为如果它是单例,通常会有多个实例——每个线程至少一个。
    猜你喜欢
    • 2020-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 1970-01-01
    • 2019-01-20
    • 2018-05-10
    相关资源
    最近更新 更多