代码之家  ›  专栏  ›  技术社区  ›  ShaneKm

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

  •  2
  • ShaneKm  · 技术社区  · 6 年前

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

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

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

    谢谢

    1 回复  |  直到 6 年前
        1
  •  5
  •   Matt Morgan    6 年前

    当你 接收 来自队列的消息,它们被标记为“正在传输”成功处理它们后,向队列发送一个调用 删去 他们此调用将包括每条消息的ID。

    当队列为空时,下一次读取将有一个空 Messages 大堆

    通常,在执行此操作时,我会将调用包装为在循环中读取队列(a while 循环)并仅在 消息 阅读后。

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