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

AWS SQS Receive Messages -- How to Know when Queue is Empty

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

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

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

谢谢

当您从队列中收到条消息时,它们被标记为"in flight."在您成功处理它们之后,您向队列发送一个调用到删除 他们。此调用将包含每条消息的 ID。

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

通常,当我这样做时,我会将读取队列的调用包装在一个循环中(while 循环),并且只有在读取后有 Messages 时才继续处理。

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