订阅 mt queue 到 autofac 模块
Subscribe mt queue to autofac module
我正在尝试设置分解为多个逻辑服务的单个服务。因为它们是逻辑服务,所以它们各自到达那里自己的队列。每个逻辑服务都是 autofac 中的一个模块。
设置大致如下:
sbc.ReceiveEndpoint(host, "service1", ep => {
ep.LoadFrom(c.Resolve<ILifetimeScope>())
});
sbc.ReceiveEndpoint(host, "service2", ep => {
ep.LoadFrom(c.Resolve<ILifetimeScope>())
});
但我认为这会导致每个消费者都订阅每个队列。
是否有内置方法可以让 autofac 仅从特定模块注册消费者,或者我是否必须编写自己的适配器?
您需要编写自己的适配器。这不是很多工作。确保将容器中的消费者解析为具体 class,而不是 Consumes
的实现。
我正在尝试设置分解为多个逻辑服务的单个服务。因为它们是逻辑服务,所以它们各自到达那里自己的队列。每个逻辑服务都是 autofac 中的一个模块。
设置大致如下:
sbc.ReceiveEndpoint(host, "service1", ep => {
ep.LoadFrom(c.Resolve<ILifetimeScope>())
});
sbc.ReceiveEndpoint(host, "service2", ep => {
ep.LoadFrom(c.Resolve<ILifetimeScope>())
});
但我认为这会导致每个消费者都订阅每个队列。
是否有内置方法可以让 autofac 仅从特定模块注册消费者,或者我是否必须编写自己的适配器?
您需要编写自己的适配器。这不是很多工作。确保将容器中的消费者解析为具体 class,而不是 Consumes
的实现。