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

使用Spring ampq请求Rabbitmq中的消息

端木朝
2023-03-14

我是rabbitmq新手,正在尝试以下场景

--

如果逻辑失败-重新排队

--

我已经使用SpringRabbitTemplate实现了基本发送器

rabbitTemplate.convertAndSend(.....);

对于消费者,我实现了一个消息侦听器

public class CustomMessageListener implements MessageListener {
@Override
    public void onMessage(Message message) {
       //** my own logic**
   }
}

并通过Spring将其添加到容器中

  <bean id="aListener" class="com.sample.CustomMessageListener" autowire="byName"/>

 <rabbit:listener-container id="myListenerContainer" connection-factory="connectionFactory"  acknowledge="auto" prefetch="750" concurrency="5" >
    <rabbit:listener ref="aListener" queues="reportQueue"/>
</rabbit:listener-container>

直到这部分工作正常。

现在,如果侦听器中提到的**我自己的逻辑**失败。我想重新询问这个消息。我如何实现这一点。从我浏览过的博客来看,似乎需要覆盖returnedMessage。但我不确定如何通过listener实现。

共有1个答案

毛淳
2023-03-14

使用acknowledge=“auto”,在侦听器正常退出之前,消息不会被确认,因此您不需要做任何额外的事情;如果侦听器引发异常或服务器崩溃,消息将保留在队列中。

 类似资料:
  • 我目前正在学习一些关于RabbitMQ+SpringAMQ的知识,我试图使我的SimpleMessageListenerContainer能够读取传递到我的两个队列的消息,但只有一个队列在接收消息。如果你有任何关于代码的进一步提示,或者如果有任何方法可以更好地做它,请让我知道这将是很好的。 编辑:问题是代码没有将消息发送给两个队列,只发送给一个队列。 基本上我是从两个队列接收的,一个在数据库中插入

  • 本文向大家介绍Python如何使用RabbitMQ的消息,包括了Python如何使用RabbitMQ的消息的使用技巧和注意事项,需要的朋友参考一下 示例 从导入库开始。 使用消息时,我们首先需要定义一个函数来处理传入的消息。这可以是任何可调用的函数,并且必须采用一个消息对象或一个消息元组(取决于中to_tuple定义的参数start_consuming)。 除了处理传入消息中的数据外,我们还必须确

  • 我有以下代码,用于创建和客户端并发送请求并等待响应。在这里你可以看到,我也用设置了一些标头值 现在,我需要我的要求是,我不需要消费者端的任何响应,只想将请求传递给带有一些标头值的消费者。为此,我只需发布命令并忘记它。我的代码如下, 但现在,我关心的是,我如何用它传递头值?

  • 问题内容: 我需要能够 使用 OKHTTP* 来 管理 一些请求,使用来通过输入地址来接收一些预测。该 问题是 ,我插入每次 CHAR 它将使一个新的请求,但在同一时间,我需要取消前一个!例如:纽约市=同时请求13个!因此,我仅使用一个实例来尝试取消已请求但没有成功的任何内容。这就是我所做的! * 我检查对象是否为null并取消请求,但仍然不断! 问题答案: 关于以下内容:

  • 我使用下面的代码发出http请求,但当抛出异常时,我无法获取每个字段的错误消息。在postman中,它确实显示了正确的错误消息: 它只是显示消息“” 然而,在《邮递员》中,它显示:

  • ActiveMQ/JMS有一个内置机制,用于确保在使用竞争消费者模式时,共享公共报头(即JMSXGroupID报头)的消息始终由队列的同一消费者使用。队列的使用者完全不知道实际的头值,因为具有公共头的消息的保证是在服务器端而不是在使用者端执行的。有关此工作方式的更多详细信息,请参见http://activemq.apache.org/message-groups.html。 用AMQP或者用Rab