Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。












想要改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。

4年前关闭。



Improve this question




在Java Web应用程序中,我经常产生A型消息负载(例如,每小时20,000个)。然后,我有第二种消息(B型)偶尔出现,但优先级高于A类(例如3,000条)。我希望能够使用开源软件在一台或多台计算机上处​​理这些消息。

在我看来,如果我有一个JMS服务器可以根据优先级从其队列发送消息(例如,发送三个类型为B的消息,然后发送类型为A的一个消息,即使所有类型为A的消息都为JMS),我也可以使用JMS做到这一点。在邮件队列的顶部)。

您是否知道可以做到这一点的JMS服务器-或您知道实现此目标的另一种方法吗?

最佳答案

在MessageProducer(QueueSender等)上调用“send(..)”时,设置消息优先级。或者,您可以在MessageProducer上将默认优先级设置为0-9(9为最高)。在邮件本身上设置优先级将不起作用。生产者已将其覆盖。

Uri是正确的-是否尊重优先级是特定于实现的。我相信OpenJMS通常尊重现成的优先级,但不能保证优先级。

JMS Spec状态:"JMS does not require that a provider strictly implement priority ordering of messages; however, it should do its best to deliver expedited messages ahead of normal messages."

09-10 09:45
查看更多