Spring Boot 3 @SqsListener处理失败时SQS消息可见性疑问
问题解答
- SQS的可见性超时从消息被消费者取出时开始计时,这段时间内消息对其他消费者不可见;只有当超时到期且消息未被删除时,才会重新变为可见。
- 使用
@SqsListener的ON_SUCCESS确认模式时,仅当消息处理成功完成,框架才会自动调用DeleteMessage操作删除消息;若处理过程中失败(抛出异常),框架不会执行任何确认操作——既不删除消息,也不会主动调整可见性超时时间。
所以在你描述的场景中:消息处理15分钟失败后,SQS仍会按最初设定的30分钟可见性超时继续计时,要等从取出消息开始的30分钟到期后,这条消息才会重新对其他消费者可见,不会在失败后立即变为可见。
内容的提问来源于stack exchange,提问作者Viraj Nalawade
相关产品推荐
相关产品推荐

