1
如果任何人可以提出一個很棒的建議,我需要一些設計建議。MSMQ,從單個窗口服務讀取多個隊列消息
我實現了一個WCF服務,它從windows服務器上的隊列(MSMQ)讀取消息並進一步處理它。現在我需要從另一個隊列中讀取消息並單獨處理它們。我很困惑要使用新服務或者更新現有的服務,它可以同時處理來自不同隊列的兩個讀數。
我在考慮表現這是最好的選擇去的interms?
如果任何人可以提出一個很棒的建議,我需要一些設計建議。MSMQ,從單個窗口服務讀取多個隊列消息
我實現了一個WCF服務,它從windows服務器上的隊列(MSMQ)讀取消息並進一步處理它。現在我需要從另一個隊列中讀取消息並單獨處理它們。我很困惑要使用新服務或者更新現有的服務,它可以同時處理來自不同隊列的兩個讀數。
我在考慮表現這是最好的選擇去的interms?
您應該能夠爲每個消費者創建一個單獨的線程。下面是僞代碼。您需要確保的唯一事情是在服務關閉時向線程發出停止信號。
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個服務vs 2個服務時,性能應該是等價的,因爲它仍然是一個正在被操作系統調度的線程。至於穩定性,在分離服務時可能會更有彈性,但這仍然不應該是太多問題,我希望單個服務方法在每個線程內應該足夠穩定。
最後我只是去尋找最簡單的方法。