为什么建议队列可见性超时为函数超时加批处理窗口的六倍?

mrb*_*bin 19 amazon-sqs amazon-web-services aws-lambda

来自https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-queueconfig

将队列可见性超时设置为函数超时的 6 倍,加上以下值MaximumBatchingWindowInSeconds

为什么队列可见性超时不能等于函数超时?假设该函数的超时时间为 30 秒,队列可见性也是如此。该函数拾取消息并经过 30 秒,该消息尚未删除,现在对其他函数/消费者可见。那为什么一定要6次呢?最大批处理窗口在队列可见性超时中扮演什么角色?

Mar*_*cin 8

那为什么一定要6次呢?

解释在下一句中给出:

如果您的函数在处理上一个批次时函数执行受到限制,则额外的时间允许Lambda重试。

这只是一个建议。你不必跟随。