当前位置: 首页 > 知识库问答 >
问题:

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

游皓
2023-03-14

我遵循以下指南: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个答案

鱼恩
2023-03-14

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

关于在ActiveMQ中使用优先消息的信息,有很多很好的资源,下面是一个。请记住,如果在您发送这些消息时,有一个活跃的消费者在线,那么代理只会在消息到达时发送它们,消费者当然会按照该顺序处理它们。

 类似资料:
  • RabbitMQ有消息优先级的概念吗?我有一个问题,一些更重要的消息由于队列中不太重要的消息而被拖慢。我希望高优先级的优先,并移动到队列的前面。 我知道我可以用两个队列来近似计算,一个是“快”队列,另一个是“慢”队列,但这看起来像是一个黑客。 有人知道使用RabbitMQ的更好的解决方案吗?

  • Netty中是否有任何嵌入式优先级机制可以帮助我决定哪些消息比其他消息发送得更频繁?

  • 问题内容: 我有一个在几个线程中运行的程序。主线程与其他线程共享一个对象,在主线程中,我需要调用: 我怀疑主线程饿了,无法访问。如何提高主线程的优先级,或者默认情况下它是否已高于其他线程? 问题答案: 您在Thread类中有一个setPriority()方法。 检查此javadoc。 将线程优先级设置为最大:

  • 我在这里有一些关于ActiveMQ配置和优先级的类似领域的问题。我目前正在配置ActiveMQ代理以关闭消息持久性。 根据文档,我知道它可以通过代理配置来实现: XML配置文件() 客户端的URI(TCP://localhost:61616?persistent=false) 代理端的 URI-XML配置文件(TCP://localhost:61616?persistent=false)。 我的第

  • 本文向大家介绍如何在TestNG中为测试用例设置优先级?,包括了如何在TestNG中为测试用例设置优先级?的使用技巧和注意事项,需要的朋友参考一下 通过为每种测试方法赋予优先级,我们可以按其执行顺序设置优先级。先运行优先级较低的测试方法,然后再执行优先级较高的测试方法。 示例 在Java类文件中,将首先运行,然后运行。

  • 我有两个拥有相同消费者的AMQ队列。第一个队列(Q1)处理97%的消息,另一个队列(Q2)仅处理3%。问题是,Q2中的消息需要在消息排队后立即进行处理。所以我的问题是,当一条消息在第二季度可用时,我需要以某种方式暂停第一条路线,以吸引消费者。apache camel路由如下所示: 应该使用什么策略?我不认为我可以使用重新定序器,因为Q1可能有成千上万的消息排队,我不能把所有的消息都放在重新定序器批