代码之家  ›  专栏  ›  技术社区  ›  Tanvi Jaywant

SQS是否返回包含以下代码的所有消息?

  •  1
  • Tanvi Jaywant  · 技术社区  · 6 年前

        // receive messages from the queue
        List<Message> messages = sqs.receiveMessage(queueUrl).getMessages();
    
        // delete messages from the queue
        for (Message m : messages) {
            sqs.deleteMessage(queueUrl, m.getReceiptHandle());
        }
    
    1. 它会返回队列中的所有消息吗?
    2 回复  |  直到 6 年前
        1
  •  1
  •   Reza Mousavi    6 年前

    1-不,正如马克所说,它最多只能返回10条消息。

    第一: 例如,每1分钟发送一次请求,并在队列中获取消息、处理它们并删除它们。因此,函数将在几分钟后检索所有这些函数。

    使用AWS Lambda函数处理队列。 https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html

    如果你想处理大量的消息,那么第二种方法更好,因为性能和成本(AWS根据您对SQS的总请求向您收费,因此在第一种方法中,如果您的队列中没有任何消息,您的应用程序将每一分钟发送一次请求,而不返回任何消息)

        2
  •  2
  •   Mark B    6 年前

    receiveMessage 请求最多返回10条消息。