如何使用Spring JmsTemplate为嵌入式activeMQ设置消息优先级?

时间:2019-05-13 11:24:48

标签: activemq spring-jms

我正在遵循本指南-https://spring.io/guides/gs/messaging-jms/ 我只有几条优先级更高的消息需要先于其他消息发送。

我已经尝试关注-

jmsTemplate.execute(new ProducerCallBack(){
 public Object doInJms(Session session,MessageProducer producer){
   Message hello1 =session.createTextMessage("Hello1");
   producer.send(hello1, DeliveryMode.PERSISTENT,0,0); // <- low priority

   Message hello2 =session.createTextMessage("Hello2");
   producer.send(hello1, DeliveryMode.PERSISTENT,9,0);// <- high priority
 }
})

但是消息是按代码中的顺序发送的。我在这里缺少什么?

谢谢。

1 个答案:

答案 0 :(得分:0)

使用优先级时,有许多因素会影响邮件的到达顺序。第一个问题是您是否启用了优先支持,第二个问题是在您发送消息时是否有消费者在线。

有很多不错的资源,可以获取有关将优先消息与ActiveMQ一起使用的信息,这里是one。请记住,如果在您发送这些消息时在线上有一个活跃的消费者,那么代理将在它们到达后立即对其进行分发,并且消费者当然会按照该顺序对其进行处理。