AWS SQS接收消息-如何知道队列何时为空

Sha*_*eKm 2 amazon-sqs amazon-web-services

我想获取队列中的所有消息以对其进行处理。但是,MaxNumberOfMessages的属性为10(基于文档)

https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html

如何阅读所有消息以便进行处理?或者我怎么知道什么时候队列是空的?

谢谢

Mat*_*gan 5

当您从队列中收到消息时,它们被标记为“正在运行”。成功处理它们后,将呼叫发送到队列以删除。该调用将包含每条消息的ID。

当队列为空时,下一个读取将具有一个空Messages数组。

通常,当我这样做时,我将调用包装成一个循环(一个while循环)以读取队列,并且仅Messages在进行读取后才继续处理。

它是FIFO队列还是标准队列,应该没有什么区别。

  • 当仍有可用消息时,我收到一个空列表。AWS 文档指出“Amazon SQS 返回的消息永远不会超过此值 [最大消息数](但是,返回的消息可能会更少)。” 你有过这样的经历吗? (3认同)