2015-09-07 29 views

回答

0

我覺得有(與任何東西)一些折衷考慮:

有一個隊列執行一個單一的,定義明確的功能促進了很好的封裝,並允許您的應用程序是靈活和良好儘可能封裝。這可能會引發諸如特定於隊列的線程池的可能性,因此您可以將更多資源分配給一種消息類型,或確保一次類型的長時間運行的請求不會阻塞另一種類型的更緊急請求。另一方面,添加一個隊列使用系統資源,因此擁有太多隊列可能效率不高(儘管在需要注意之前您需要一個批次),或者如果難以識別正確的隊列爲特定的消息類型。

一個EIP這是值得考慮的是command pattern - 這使用單個隊列執行多個動作。值得注意的是facade pattern - 即使您的應用程序在內部使用多個不同的隊列,您也可能更願意使用Facade來從客戶端系統中提供此功能。