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

如果队列不存在,队列侦听器将失败Spring Rabbit

司寇研
2023-03-14

我们试图在我们的Spring Boot应用程序中使用sping-Rabbit创建一个消息侦听器。但是,如果队列不存在,我们在接收消息期间会遇到问题,应用程序会抛出错误,称为被动声明。

Channel error on connection (172.13.1.3:49352 -> 172.13.1.7:5672, vhost: '/', user: 'guest'), channel 1:
message_queue_1_1  | operation queue.declare caused a channel exception not_found: no queue 'add' in vhost '/'

我们想要的是主动声明队列,即如果队列不存在,则应该在mq中声明它。

共有1个答案

梁德馨
2023-03-14

要从应用程序自动在代理上声明AMQP对象,您确实需要将它们配置为bean,并且还需要一个特殊的AmqpAdmin bean来执行硬声明逻辑。文件中有所有必要的解释:https://docs.spring.io/spring-amqp/docs/2.0.4.RELEASE/reference/html/_reference.html#broker-配置

 类似资料:
  • 我试图让队列在laravel 5中工作,队列侦听器正在输出: 未定义索引:表 存在"作业"和"failed_jobs"表,config.php设置为"数据库"。 搜索laravel论坛和google都没有找到解决办法,艾米的想法去哪里找?

  • 我正在使用带有队列触发器的Azure Functions。 当函数运行时,它会从Azure队列中删除一个项目。然而,有时我的处理会失败,在这种情况下,我想重新申请该项目,并在以后进行处理。 如何在Azure函数和使用Node中实现这一点。js?

  • 我使用VisualStudio代码创建了一个Azure Service Bus Queue Trigger Python函数,如果代码失败,我希望将消息返回到Service Bus队列。 我找到了一些关于一个名为unlock()和discard()的方法的信息,但我不知道如何实现它。以下是这些文档的链接: 解锁:https://docs.microsoft.com/en-us/azure/serv

  • 在这篇文章中,加里·拉塞尔解释了如何通过编程创建多个Kafka列斯汀来聆听多个主题。。Kafka·斯普林:如何动态或在循环中创建监听器? 现在我想有一个类似的设置也适用于JMSListeners-在那里我可以有一个带有一个@JMSListener的类,并且我可以以编程方式创建该JMSListener的多个实例,每个实例都注入了自己的queueName。 我发现这篇文章Spring JMS开始根据请

  • 问题内容: 我正在使用EJB 3.1,并且想配置一个MDB来侦听多个队列。 我更喜欢通过XML定义队列名称,而其他通过注释定义。 能做到吗? 问题答案: 实例化后,MDB只能侦听在其目标ActivationConfigProperty中指定的资源,但是您 可以 为同一MDB创建具有不同目标的多个实例(在您的情况下为队列)。 在ejb-jar.xml中创建两个条目,它们具有不同的目的地和ejb-na