2017-02-21 38 views
0

我正在为EasyNetQ发布封装以将消息发布到RabbitMQ。有大量需要发布的消息。我是否应该使用模式来使用IBus发布消息,还是应该将IBus类型var声明为类级别static var,并在应用程序结束时进行处理?EasyNetQ消息发布程序模式

using (IBus bus = RabbitHutch.CreateBus(rabbitMQConnectionString)) 
{ 
bus.publish("ss"); 
} 

感谢

+0

这主要是一个基于意见的问题,我会说没有正确的答案,并取决于上下文。 为什么不让应用程序选择是创建一个静态总线还是实例化呢? –

+0

有大量需要发布的消息。我主要关心多次创建和部署IBus实例。另一方面,如果我将IBus类型var作为静态类成员,我担心并发问题。我可以应用锁定但会影响性能 –

+0

为什么并发性会让您担心消息队列到位?来自队列的消息仅由订阅应用程序出队一次。锁定总线实例不会阻止应用程序多次发送相同的消息。 –

回答

2

你应该为你的应用程序创建一个单一的下iBus实例和应用程序结束时处理。它旨在创建与RabbitMQ的单个连接并且是线程安全的。