我需要關於我的WCF服務隊列設計的建議。 所以,我有一個wcf服務和很多客戶端。客戶端生成消息並將它們放入隊列以供我的服務進行處理。 服務處理它們的異步和客戶端不需要將消息放入隊列的回調或響應。WCF服務的隊列實現
我的服務需要使隊列中的消息出隊以供多線程處理。但是,如果我的服務會停止或失敗,或者服務器立即關閉 - 此服務必須重新處理消息,但這不會影響處理。
所以,我認爲msmq隊列的實現。 Msmq讓我做出好的隊列,但是如何實現這個需求:重新處理消息,那個消息沒有被處理到最後?
可能有人會給我另一個下注的建議。 感謝您的幫助。
如果服務停止,消息應該保留在隊列中並在再次啓動時進行處理,這是不是發生了?如果是這樣,您如何託管讀取MSMQ的WCF進程? – 2011-04-13 12:16:48
但是服務是否可以從隊列中取消消息並開始處理?同時,另一個處理線程從隊列中取出另一個消息用於處理和啓動進程。然後我們終止服務進程,重啓後可以發現隊列中的2個項目沒有處理? – cyssima 2011-04-13 13:43:37
每個線程應該參與一個事務,所以這兩個消息應該在那裏。另一種方法是創建指向同一隊列的多個進程,而不是擁有多個線程。這是「競爭消費者」模式,可以使用MSMQ 4。 – 2011-04-13 17:30:06