2010-06-07 41 views
3

有沒有根據自定義標頭值來優先化JMS代理中的消息的方法?由自定義標頭設置的JMS優先級

例如:「購買日期」。先獲得最早等

請指教。

+0

解決方法是創建不同的消費者,使用消息選擇器過濾出消息的更低和更高屬性(購買日期> = somedate),並處理來自高優先級消費者的消息,然後優先 – mjn 2011-07-08 17:02:02

回答

1

在JMS標準的邊界內沒有辦法做到這一點。它不支持這樣的自定義路由規則。

但是,許多實現JMS的產品都支持某種基於規則的路由/優先級,所以您應該查看產品文檔。

+0

謝謝。在ActiveMQ或HornetQ中沒有找到類似的東西。任何人都知道任何已知的JMS提供者中的這種特徵? – YaOg 2010-06-08 11:19:38

0

您可能可以使用諸如Apache Camel或ServiceMix之類的東西來根據消息中的任何內容操縱JMSPriority頭。 ActiveMQ內置駱駝,我會從那裏開始。

如果我們不是在討論開源解決方案,Tibco BusinessWorks(不是粉絲)也應該可以工作。

我不認爲你會直接在JMSProvider中找到它,這更像是ESB /消息路由器。

當然,在您實際發送郵件之前,您可以在發送郵件之前將業務規則應用於JMSPriority郵件頭。注意:我不認爲ActiveMQ此時實際上支持JMSPriority頭。