【发布时间】:2021-09-05 23:10:19
【问题描述】:
我正在使用 RetryOperationsInterceptor。每次消息消费抛出异常,消息都会放回队列中。这就是我想要的,但我希望它在队列的尾部而不是头部。有没有办法实现?
【问题讨论】:
我正在使用 RetryOperationsInterceptor。每次消息消费抛出异常,消息都会放回队列中。这就是我想要的,但我希望它在队列的尾部而不是头部。有没有办法实现?
【问题讨论】:
您必须将其重新发布到恢复器中的队列中。
在拦截器中添加RepublishMessageRecoverer。
https://docs.spring.io/spring-amqp/docs/current/reference/html/#async-listeners
它仍会立即重试,因此您必须将 maxAttempts 设置为 1 并使用消息头来计算已进行了多少次传递尝试,因此您可能需要自定义恢复器。
【讨论】: