在其ChangeMessageVisibility函数的文档中,Amazon提供了以下示例:
例如,您有一条可见性超时为5分钟的消息。 3分钟后,调用ChangeMessageVisibility,超时为10分钟。您可以继续调用ChangeMessageVisibility将可见性超时扩展到允许的最大时间。如果您尝试将可见性超时扩展到超出最大值,则会拒绝您的请求。
https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-sqs-visibility-timeout.html
所以,在我将msg的可见时间改为10分钟后,它还剩10分钟,12分钟或8分钟?
该消息还剩10分钟。 ChangeMessageVisibility
将计时器设置为一个新值,从该值开始倒计时。
该文档将问题与提及5分钟和3分钟相混淆。问题似乎是您需要在计时器到期之前进行呼叫,否则为时已晚,因为该消息已经再次可见并且可能已经传递给另一个消费者。