spring-integration amqp通道错误处理程序auto-ack



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

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

在入站rabbit适配器中,有一个error channel属性,通过处理errorChannel上的消息,我可以实现上述所需的行为。amqp通道上唯一的错误属性是errorhandler。

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

感谢

抛出一个AmqpRejectAndDontRequeueException。参见3.9异常处理。

默认错误处理程序对消息转换异常(可能无法恢复)执行此操作。

事实上,您可以通过注入自定义FatalExceptionStrategy来使用该错误处理程序。

相关内容

最新更新