最多可接收10条消息时设置SQS的可见性超时
问题描述:
ReceiveMessage
呼叫最多可以从队列返回10条消息(http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html)。我正在使用长轮询。最多可接收10条消息时设置SQS的可见性超时
我将遍历收到的消息列表并在单个线程中处理它们。这是否意味着我应该将VisibilityTimeout
设置为(expected time to process single message) * 10
。
或者SQS是否为我自动照顾这件事?如果是这样,我也会好奇地了解这一点,因为我一直无法在文档中找到任何澄清。
答
这是否意味着我应该设置VisibilityTimeout队列是 (预计时间来处理单个消息)* 10
是
或者,也SQS照顾这对我来说是自动的?
不可能这会怎么样?一旦收到10条消息,SQS就无法看到你正在对他们做什么。它不知道什么构成了应用程序中每条消息的“处理”。所有SQS知道的是,它将10条消息传递给您的应用程序。
或者,将MaxNumberOfMessages
设置为1
,以便您的应用程序每次只从SQS接收一条消息。
RabbitMQ可以自动解决这个问题,通过假设连接是否已经终止,消息需要重新发送。在某些情况下,SQS更有意义并延长可见性超时。 – NeverEndingQueue