[英]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.