【问题标题】:Does "SentTimestamp" attribute of AWS SQS message change after visibility timeout?AWS SQS 消息的“SentTimestamp”属性是否会在可见性超时后发生变化?
【发布时间】:2016-02-06 17:14:33
【问题描述】:

在使用 AWS SQS 时,消息的“SentTimestamp”属性在从队列接收到消息后是否会发生变化,但在可见性超时后不会被删除并返回到队列中 strong> 过期了?

【问题讨论】:

  • ApproximateFirstReceiveTimestamp 和 SentTimestamp 有什么区别?

标签: amazon-web-services amazon-sqs


【解决方案1】:

不,这种行为是不可取的,因为SentTimestamp 专门描述了消息首次发送到队列的时间。

描述可见性超时的documentation 提供了一些见解:

组件接收到消息后,立即发送消息 还在排队。但是,您不希望在 系统再次接收和处理消息。因此,亚马逊 SQS 使用可见性超时来阻止它们,这是一段时间 在此期间,Amazon SQS 会阻止其他消费组件 接收并处理该消息。

这里重要的一点是消息永远不会真正离开队列,它只是对其他正在接收消息的客户端隐藏。因此 MessageID 和 SentTimeout 等消息内容不会改变。另一方面,与接收消息相关的内容(如 RecieptHandle 和 Receive Count)在每次收到消息时都会发生变化。

您可以通过以下方式从 AWS Web 控制台自行验证:

  • 在队列中创建消息。
  • 查看消息。
  • 等待可见性超时到期。完成后,在新选项卡中再次打开 SQS 控制台。
  • 在新选项卡中再次查看消息。比较两个收到的消息的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 2023-03-26
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多