首页 文章

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

提问于
浏览
0

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

3 回答

  • 0

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

  • 2

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

    您可以使用CreateQueue操作通过将DelaySeconds属性设置为0到900(15分钟)之间的任何值来创建延迟队列 . 您还可以使用SetQueueAttributes操作将现有队列更改为延迟队列,以设置队列的DelaySeconds属性http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-delay-queues.html

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

  • 0

    找到一个名为 Amazon SQS Message Timers 的选项Amazon SQS消息计时器允许您为添加到队列的消息指定初始不可见期 . 例如,如果将 send a message with the DelaySeconds parameter 设置为45,则消息在消息保留在队列中的前45秒内不可见 . DelaySeconds的默认值为0 .

    要设置适用于队列中所有消息的延迟时间段,请使用延迟队列 . 单个消息的消息计时器设置 overrides any DelaySeconds value that applies to the entire delay queue .

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

相关问题