2016-12-25 68 views
0

ReceiveMessage呼叫最多可以从队列返回10条消息(http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html)。我正在使用长轮询。最多可接收10条消息时设置SQS的可见性超时

我将遍历收到的消息列表并在单个线程中处理它们。这是否意味着我应该将VisibilityTimeout设置为(expected time to process single message) * 10

或者SQS是否为我自动照顾这件事?如果是这样,我也会好奇地了解这一点,因为我一直无法在文档中找到任何澄清。

回答

0

这是否意味着我应该设置VisibilityTimeout队列是 (预计时间来处理单个消息)* 10

或者,也SQS照顾这对我来说是自动的?

不可能这会怎么样?一旦收到10条消息,SQS就无法看到你正在对他们做什么。它不知道什么构成了应用程序中每条消息的“处理”。所有SQS知道的是,它将10条消息传递给您的应用程序。

或者,将MaxNumberOfMessages设置为1,以便您的应用程序每次只从SQS接收一条消息。

+0

RabbitMQ可以自动解决这个问题,通过假设连接是否已经终止,消息需要重新发送。在某些情况下,SQS更有意义并延长可见性超时。 – NeverEndingQueue

相关问题