gpt4 book ai didi

spring-amqp - 在 spring amqp SimpleMessageListenerContainer 中处理异常的最佳策略是什么

转载 作者:行者123 更新时间:2023-12-01 12:48:38 26 4
gpt4 key购买 nike

我有两个困惑。

1.如果消息监听器抛出RuntimeException,SimpleMessageListenrContainer会停止吗?2.如果SimpleMessageListenerContainer没有停止,自动确认的行为是什么?

目前,我希望如果消息监听器处理消息失败,我只记录错误并且不停止容器同时通知代理已收到消息。

现在我只是在消息监听器方法中捕获 throwable,它是正确的方法吗?

最佳答案

不,容器不会停止。

如果监听器抛出异常,则消息将被拒绝(默认情况下会重新排队)。您可以通过将 defaultRequeueRejected 设置为 false(默认情况下为 true)来更改默认行为以丢弃消息。或者抛出一个 AmqpRejectAndDontRequeueException 指示容器拒绝(而不是重新排队)消息 - 发送 ack 就好像监听器没有抛出异常一样。

当消息被拒绝而不重新排队时,如果队列是这样配置的,它要么被丢弃,要么被发送到死信交换。

关于spring-amqp - 在 spring amqp SimpleMessageListenerContainer 中处理异常的最佳策略是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33437266/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com