【发布时间】:2016-02-06 17:14:33
【问题描述】:
在使用 AWS SQS 时,消息的“SentTimestamp”属性在从队列接收到消息后是否会发生变化,但在可见性超时后不会被删除并返回到队列中 strong> 过期了?
【问题讨论】:
-
ApproximateFirstReceiveTimestamp 和 SentTimestamp 有什么区别?
标签: amazon-web-services amazon-sqs
在使用 AWS SQS 时,消息的“SentTimestamp”属性在从队列接收到消息后是否会发生变化,但在可见性超时后不会被删除并返回到队列中 strong> 过期了?
【问题讨论】:
标签: amazon-web-services amazon-sqs
不,这种行为是不可取的,因为SentTimestamp 专门描述了消息首次发送到队列的时间。
描述可见性超时的documentation 提供了一些见解:
组件接收到消息后,立即发送消息 还在排队。但是,您不希望在 系统再次接收和处理消息。因此,亚马逊 SQS 使用可见性超时来阻止它们,这是一段时间 在此期间,Amazon SQS 会阻止其他消费组件 接收并处理该消息。
这里重要的一点是消息永远不会真正离开队列,它只是对其他正在接收消息的客户端隐藏。因此 MessageID 和 SentTimeout 等消息内容不会改变。另一方面,与接收消息相关的内容(如 RecieptHandle 和 Receive Count)在每次收到消息时都会发生变化。
您可以通过以下方式从 AWS Web 控制台自行验证:
【讨论】: