【问题标题】:Setting visibility timeout for SQS when receiving up to 10 messages在接收多达 10 条消息时为 SQS 设置可见性超时
【发布时间】:2016-12-26 00:17:22
【问题描述】:

ReceiveMessage 调用最多可以从队列 (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html) 返回 10 条消息。我正在使用长轮询。

我将遍历收到的消息列表并在单个线程中处理它们。这是否意味着我应该将队列的VisibilityTimeout 设置为(expected time to process single message) * 10

或者,SQS 会自动为我处理这个问题吗?如果是这样,我也很想了解这一点,因为我无法在文档中找到任何说明。

【问题讨论】:

    标签: amazon-web-services amazon-sqs


    【解决方案1】:

    这是否意味着我应该将队列的 VisibilityTimeout 设置为 (处理单个消息的预期时间)* 10.

    是的

    或者,SQS 会自动为我解决这个问题吗?

    没有。这怎么可能?一旦您收到 10 条消息,SQS 就无法了解您对它们的处理方式。它不知道你的应用程序中每条消息的“处理”是什么。 SQS 只知道它向您的应用程序发送了 10 条消息。

    或者,将MaxNumberOfMessages 设置为1,这样您的应用程序一次只能从SQS 接收一条消息。

    【讨论】:

    • RabbitMQ 可以自动解决这个问题,假设连接已终止,则需要重新发送消息。在某些情况下比 SQS 和延长可见性超时更有意义。
    猜你喜欢
    • 2019-10-07
    • 2017-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 2016-02-06
    相关资源
    最近更新 更多