AWS SQS发件人设置消费者可以获得消息的时间

时间:2017-11-06 09:38:39

标签: amazon-web-services amazon-sqs

我在AWS SQS中看到了一个名为可见性超时的选项,该选项为其他使用者设置了忽略正在处理的邮件的时间。 是否有选项可以在消息实际可供消费者使用之前设置时间,可以在消息实际插入队列时设置

3 个答案:

答案 0 :(得分:2)

有这样的选项,但它是队列级选项,而不是消息级选项:

  

您可以使用CreateQueue操作通过将DelaySeconds属性设置为0到900(15分钟)之间的任何值来创建延迟队列。您还可以使用SetQueueAttributes操作将现有队列更改为延迟队列,以设置队列的DelaySeconds属性

     

http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-delay-queues.html

当值非零时,所有消息都会在最初对任何消费者可见之前延迟指定的秒数。

答案 1 :(得分:0)

找到一个名为 Amazon SQS消息计时器的选项 Amazon SQS消息计时器允许您为添加到队列的消息指定初始不可见期。例如,如果发送DelaySeconds参数设置为45的消息,则消息在消息保留在队列中的前45秒内不可见。 DelaySeconds的默认值为0。

要设置适用于队列中所有消息的延迟时间段,请使用延迟队列。单个消息的消息计时器设置会覆盖适用于整个延迟队列的任何DelaySeconds值

有关SQS的更多信息,请查看AWS的 this 详细PDF

答案 2 :(得分:0)

处理邮件时,实际上可以使用ChangeMes​​sageVisibility()。这允许您在向上或向下保持消息的同时更改超时时间。例如,如果您知道您的消息第一次失败,您可以将其设置为0并将其重新放回队列。如果您想要一个特别长的超时,您可以检查该类型的消息并将其设置为10分钟,例如。