我有一个支持amqp的通道<int-amqp:channel>
来暂时保留来自JDBC入站适配器的消息。当没有抛出异常时,该消息被确认并从兔子队列中删除。发生异常时,消息将返回队列并连续重新处理。在某些情况下,我希望返回队列的请求,但在大多数情况下,我只想记录错误并确认请求(从兔子队列中删除)。
我已经实现了一个errorHandler来处理抛出的异常并允许记录和&#34;成功&#34;完成,但即使在处理之后,原始请求也会重新传送到兔子队列(未确认)
在inbound-rabbit-adapter中,有一个错误通道属性,处理errorChannel上的消息可以让我实现上述所需的行为。 amqp通道上唯一的错误属性是错误处理程序。
有关配置的任何建议可以让我满足我的要求吗?
感谢
答案 0 :(得分:0)
抛出AmqpRejectAndDontRequeueException
。请参阅3.9 Exception Handling。
default error handler为消息转换异常(可能无法恢复)执行此操作。
实际上,您可以通过注入自定义FatalExceptionStrategy
来使用该错误处理程序。