2010-06-07 40 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头。