SQS Lambda触发轮询率



我想了解SQS Lambda Triggers在轮询Queue中的消息时是如何工作的。

我正在努力确保在1秒内处理的消息不超过3条。

<<p>

想法/strong>我的想法是将触发器BatchSize设置为3,并将队列的receivemessagewaittimesseconds设置为1秒。我思考这个正确吗?

编辑:

我做了一些挖掘,看起来我可以在Lambda上设置并发限制。如果我将Lambda并发性限制设置为确保一次只处理一批消息。如果我的lambda运行了一秒钟,那么下一批消息至少会在一秒钟后得到处理。这里的问题是,长轮询会根据消息量自动调整队列上异步轮询的数量。这意味着,当大量消息传入时,lambda可能会受到限制。当lambdas节流时,消息将返回队列,直到它最终进入DLQ。

ReceiveMessageWaitTimeSeconds用于长轮询。的时间长度,以秒为单位,ReceiveMessage行动等待消息到达(文档)。长轮询并不意味着您的客户端将等待整个时间集的长度。如果您将其设置为1秒,但在队列中我们已经有足够的消息,您的客户端将立即消费它们,并在处理完成后立即再次尝试消费。

如果您希望以特定的速率使用特定数量的消息,您必须在应用程序上执行此操作(例如,按计划使用消息)。SQS本身不提供类似于您想要完成的任何类型的速率限制。

最新更新