java - 使用 ProducerTemplate 设置 activemq 优先级

标签 java apache-camel activemq

可以这样做吗?

我正在尝试使用以下命令发送到队列:

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>

但是,当我使用生产者模板发送消息时,它在 activemq 中显示的优先级是 0:

enter image description here

即使当我正常发送消息时( ProducerTemplate.sendBodyAndProperty(“activemq:queue.queue”,message)),优先级显示为4。

最佳答案

JMSPriority 应该是 header 而不是属性。

producerTemplate.sendBodyAndHeader("activemq:queue.queue", message, "JMSPriority", priority);

关于java - 使用 ProducerTemplate 设置 activemq 优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27138036/

相关文章:

java - 区分apache Camel中使用通配符时调用的是哪个队列

java - 每个请求与每个 session 发出临时队列是否会影响性能?

java - JGoodies:将多个 swing 组件绑定(bind)到单个模型字段

java - Camel Kafka 2.14.3版本无法读取消息

java - Apache Camel - 将拆分元素聚合到列表中

java - 基于对象值的 Camel 路由

jms - 如何将 JMS 消息从 WildFly 10 发送到远程 ActiveMQ

java - 如何从命令提示符运行 Maven 项目 testng.xml

java - 通配符转义 JPA 规范

java - Spring 条件属性验证