是" SentTimestamp"可见性超时后AWS SQS消息的属性是否发生变化?

时间:2015-11-05 18:13:14

标签: amazon-web-services amazon-sqs

使用AWS SQS时," SentTimestamp "消息的属性在从队列接收后发生更改,但在可见性超时过期后未被删除并返回队列?

1 个答案:

答案 0 :(得分:2)

不,并且该行为是不合需要的,因为SentTimestamp具体描述了消息首次发送到队列的时间。

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

  

组件收到消息后,消息立即生效   仍然在队列中。但是,您不需要其他组件   系统再次接收和处理消息。因此,亚马逊   SQS使用可见性超时来阻止它们,这是一段时间   在此期间,Amazon SQS会阻止其他消费组件   接收和处理该消息。

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

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

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