AWS,SQS,计算10条消息的visabilityTimeout

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

我有代码:

val messageRequest = new ReceiveMessageRequest().withQueueUrl(queueUrl).withVisibilityTimeout(8000).withMaxNumberOfMessages(10)
val messages = sqs.receiveMessage(messageRequest).getMessages.asScala

我的lambda最长工作时间为13分33秒(800秒)

我一次从SQS收到10条消息

我想正确计算VisibilityTimeout

我用公式:

“lambda timeout”(800sec)* MaxNumberOfMessages(10)= 8000秒

每封邮件800秒

1.我是否正确计算了VisibilityTimeout?

2. VisibilityTimeout更改会影响结算吗?

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

可见性超时是指SQS将消息传递给一个消费者后等待该消费者处理和删除消息时,消息对所有消费者不可见的持续时间。如果消息一旦被传递,就不会被允许的窗口内的消费者从队列中删除,那么它将再次可见,并且当可见性超时到期时将再次传递。

在您描述的方案中,正确的值仍为800,因为可见性超时单独应用于每条消息,但同时开始并同时运行。您的代码将在800秒后终止,并且当这段时间过去后,消息需要再次显示。如果设置为8000秒,如果您的代码在800秒后终止,那么在超时到期之前,这些消息将在7200秒内保持不可见状态。

可见性超时对计费没有直接影响。

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