首页 > 解决方案 > AWS SQS 接收消息——如何知道队列何时为空

问题描述

我想获取队列中的所有消息来处理它们。但是 MaxNumberOfMessages 的属性是 10(基于文档)

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

如何阅读所有消息以便处理它们?或者我怎么知道队列何时为空?

谢谢

标签: amazon-web-servicesamazon-sqs

解决方案


当您收到来自队列的消息时,它们会被标记为“正在运行”。成功处理它们后,您向队列发送调用以删除它们。此调用将包括每条消息的 ID。

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

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

如果它是 FIFO 队列或标准队列,它应该没有任何区别。


推荐阅读