spring 集成 amqp 通道错误处理程序自动确认

spring integration amqp channel error handler auto ack

我有一个支持 amqp 的通道 <int-amqp:channel> 来临时保留来自 JDBC 入站适配器的消息。当没有抛出异常时,消息被确认并从兔子队列中删除。当异常发生时,消息返回到队列中并继续重新处理。在某些情况下我希望请求返回队列,但在大多数情况下我只想记录错误并确认请求(从 rabbit 队列中删除)。

我已经实现了一个 errorHandler 来处理抛出的异常并允许记录和 "successful" 完成,但是即使在处理之后,原始请求也会重新传送到兔子队列(未确认)

在 inbound-rabbit-adapter 中,有一个 属性 用于错误通道,并且处理 errorChannel 上的消息允许我实现上述所需的行为。 amqp 通道上唯一的错误 属性 是 errorhandler。

关于可以满足我的要求的配置有什么建议吗?

谢谢

抛出一个AmqpRejectAndDontRequeueException。参见 3.9 Exception Handling

default error handler 为消息转换异常(可能无法恢复)执行此操作。

事实上,您可以通过注入自定义 FatalExceptionStrategy.

来使用该错误处理程序