是否可以这样做?
我正在尝试使用以下方式发送到队列:
producerTemplate.sendBodyAndProperty("activemq:queue.queue", message, "JMSPriority", priority);
我已经设置了JMSConfiguration:
JmsConfiguration jmsConfiguration = new JmsConfiguration(pooledConnectionFactory);
jmsConfiguration.setDeliveryPersistent(false); // do not store a copy of the messages on the queue
jmsConfiguration.setPreserveMessageQos(true);
jmsConfiguration.setExplicitQosEnabled(true);
我也在activemq.xml
启用了排队:
<policyEntry queue=">" prioritizedMessages="true" useCache="false" expireMessagesPeriod="0" queuePrefetch="1" >
</policyEntry>
然而,当我使用producertemplate发送消息时,activemq中显示的优先级为0:
即使我正常发送消息(producerTemplate.sendBodyAndProperty("activemq:queue.queue", message)
),优先级也会显示为4。
答案 0 :(得分:2)
JMSPriority
应该是标题而不是属性。
producerTemplate.sendBodyAndHeader("activemq:queue.queue", message, "JMSPriority", priority);