AWS SQS 发送程序设置消息可供使用者使用的时间



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

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

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

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

当该值为非零时,所有消息都会延迟指定的秒数,然后才能对任何使用者最初可见。

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

若要设置应用于队列中所有邮件的延迟期,请使用延迟队列。单个消息的消息计时器设置将覆盖应用于整个延迟队列的任何 DelaySeconds 值

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

当你处理消息时,你实际上可以使用 ChangeMessageVisibility()。这允许您在按住或按住消息的同时更改超时期限。例如,如果您知道您的消息第一次失败,您可以将其设置为 0,它会将其放回队列中。 如果您想要特别长的超时时间,则可以检查该类型的消息并将其设置为 10 分钟。

最新更新