sqs消息的函数changeMes sageVisibility如何扩展可见性时间?

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

在其ChangeMes​​sageVisibility函数的文档中,Amazon提供了以下示例:

例如,您有一条可见性超时为5分钟的消息。 3分钟后,调用ChangeMes​​sageVisibility,超时为10分钟。您可以继续调用ChangeMes​​sageVisibility将可见性超时扩展到允许的最大时间。如果您尝试将可见性超时扩展到超出最大值,则会拒绝您的请求。

https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ChangeMessageVisibility.html

https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-sqs-visibility-timeout.html

所以,在我将msg的可见时间改为10分钟后,它还剩10分钟,12分钟或8分钟?

java amazon-web-services amazon-sqs
1个回答
1
投票

该消息还剩10分钟。 ChangeMessageVisibility将计时器设置为一个新值,从该值开始倒计时。

该文档将问题与提及5分钟和3分钟相混淆。问题似乎是您需要在计时器到期之前进行呼叫,否则为时已​​晚,因为该消息已经再次可见并且可能已经传递给另一个消费者。

© www.soinside.com 2019 - 2024. All rights reserved.