簡體   English   中英

MSMQ,從單個Windows服務讀取多個隊列消息

[英]MSMQ ,reading multiple Queue messages from a single windows Service

如果有人可以提出建議,我需要一些設計建議。

我實現了一個WCF服務,該服務從Windows服務器上的隊列(MSMQ)中讀取消息並進一步處理它。現在我需要從另一個隊列中讀取消息並單獨處理它們。服務將並行執行來自不同隊列的兩個讀取。

我在考慮績效方面,哪一種是最佳選擇?

您應該能夠為每個使用者使用一個單獨的線程。 下面是偽代碼。 您唯一需要確保的是在關閉服務時向線程發出停止信號。

new Thread(WorkerA) { IsBackground = true }.Start();
new Thread(WorkerB) { IsBackground = true }.Start();

void WorkerA() {
   while (true) { /* process queue a */ }
}

void WorkerB() {
   while (true) { /* process queue b */ }
}

在談論1個服務與2個服務時,性能應該是等效的,因為它仍然是操作系統正在調度的線程。 至於穩定性,您在拆分服務時可能會更具彈性,但這仍然不是一個太大的問題,我希望單一服務方法在每個線程中都應該足夠穩定。

最后,我只是選擇最簡單的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM