如何使用 spring JmsTemplate 为嵌入式 activeMQ 设置消息优先级?
How to set message priority for embedded activeMQ using spring JmsTemplate?
我正在遵循本指南- 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
}
})
但是消息是按顺序发送的,因为它们在code.What我这里不见了?
谢谢。
使用优先级时,有许多因素会影响消息的到达顺序。第一个问题是您是否启用了优先支持,第二个问题是在您发送消息时是否有消费者在线。
关于在 ActiveMQ 中使用优先消息的信息有很多很好的资源,这里是 one。请记住,如果在您发送这些消息时有一个活跃的消费者在线,那么代理将在消息到达时发送它们,消费者当然会按该顺序处理它们。
我正在遵循本指南- 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
}
})
但是消息是按顺序发送的,因为它们在code.What我这里不见了?
谢谢。
使用优先级时,有许多因素会影响消息的到达顺序。第一个问题是您是否启用了优先支持,第二个问题是在您发送消息时是否有消费者在线。
关于在 ActiveMQ 中使用优先消息的信息有很多很好的资源,这里是 one。请记住,如果在您发送这些消息时有一个活跃的消费者在线,那么代理将在消息到达时发送它们,消费者当然会按该顺序处理它们。