2017-02-21 41 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的單個連接並且是線程安全的。