Spring boot SQS 监听器在处理过程中出现错误/异常时使消息可见

问题描述 投票:0回答:1

根据文档,可见性超时从 Amazon SQS 返回消息时开始。在此期间,消费者处理并删除消息。但是,如果使用者在删除消息之前失败,并且您的系统在可见性超时到期之前未调用该消息的 DeleteMessage 操作,则该消息将变为可见。

使用Spring Boot 3

@SqsListener
时,默认确认模式为ON_SUCCESS,如文档

现在,如果确认模式为

ON_SUCCESS
且可见性超时为30分钟,但消息处理在15分钟时失败。失败后消息会立即可见还是 SQS 将等待 30 分钟以使消息对其他消费者可见。

java amazon-web-services spring-boot amazon-sqs sqslistener
1个回答
0
投票

该消息将继续对其他消费者隐藏,直到可见性超时到期。

但是,您可以将 Visibility 的实例注入到您的方法中,并在异常处理程序中将可见性更改为 0。这将使其他消费者立即看到该消息。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.