首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在带有amqp的spring-boot中使用基于注释的侦听器来NACK消息的正确异常类型是什么?

在带有amqp的spring-boot中使用基于注释的侦听器来NACK消息的正确异常类型是什么?
EN

Stack Overflow用户
提问于 2016-08-30 02:11:23
回答 1查看 456关注 0票数 1

我使用spring boot和spring-amqp以及基于注解的监听器来使用rabbitmq代理的消息。我有一个spring组件,它包含如下方法:

代码语言:javascript
复制
  @RabbitListener(queues = "tasks")
  public void receiveMessage(@Payload Task task) {...}

在成功执行receiveMessage(...)之后,我使用AUTO模式来确认消息。如果我检测到一个特殊的错误,我会抛出AmqpRejectAndDontRequeueException把这个消息放到一个配置好的死信队列中。现在,我只需要nack一条消息,这样消息就会重新排队到rabbitmq的主队列中,并且另一个使用者有可能再次处理该消息。

我应该抛出哪个异常呢?我不想使用channel.basicNack(...)如果可能的话,就像这里描述的(http://docs.spring.io/spring-integration/reference/html/amqp.html)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-30 03:36:07

只要容器工厂中的defaultRequeueRejectedtrue (默认值),抛出AmqpRejectAndDontRequeueException以外的任何异常都会导致消息被拒绝并重新排队。

异常的原因链中不能有AmqpRejectAndDontRequeueException (容器遍历原因以确保不存在此类异常)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39212542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档