6
MassTransit中处理程序和消费者之间有什么区别?我已经看过使用其中一个或另一个的例子,但从概念上讲,我不清楚两者之间的区别以及为什么要选择其中一个。MassTransit中处理程序和消费者之间的区别
MassTransit中处理程序和消费者之间有什么区别?我已经看过使用其中一个或另一个的例子,但从概念上讲,我不清楚两者之间的区别以及为什么要选择其中一个。MassTransit中处理程序和消费者之间的区别
Consumer是一种您注册的类型,它具有处理Consumer对象生命周期的专用处理程序。
处理程序实际上只是一个通用的事件处理程序。
如果您只需要一个小的Action<>
块来解决消息上的任何操作,就可以使用处理程序。如果您想注册一个具有生命周期的类型来解析消息中的任何操作,您将使用消费者。一般来说,你最终会想要一个消费者,因为希望你的容器为这个类型解析依赖关系,而不是只把它们放在你的处理程序的范围内。但处理程序对于小事情或请求响应场景非常适用。
根据你的描述,那么,我认为每个消息都会有一个Consumer实例?如果我在同一个类上设置了一个错误处理程序,那么在处理错误时会使用最后一个实例还是全新实例? –
取决于注册。如果您使用IoC容器助手注册,它会让容器维持生命周期。还有,考虑到状态在消息间被共享是很麻烦的,因为如果它是单例的话,通常会有多个实例 - 每个线程至少有一个实例。 – Travis