给定一条 Amazon SQS 消息,有没有办法通过 API 判断它是否仍在传输中?或者,我是否需要在收到消息时记下时间戳,从当前时间中减去它,然后检查它是否小于可见性超时?
最佳答案
使用 Amazon Simple Queuing Service (SQS) 的正常流程是:
SendMessage
进入队列(最多可以在队列中停留 14 天)ReceiveMessage
至 检索 来自队列的消息(不保证先进先出)DeleteMessage
(也可以调用ChangeMessageVisibility
来延长时间直到超时)无法获得有关特定消息的信息。 相反,应用程序请求一条消息(或一批消息),消息在此之后变得不可见(或“在飞行中”)。这也可以访问
ReceiptHandle
可以与 DeleteMessage
一起使用或 ChangeMessageVisibility
.最接近的选择是调用
GetQueueAttributes
. ApproximateNumberOfMessagesNotVisible
的值将指示 飞行中消息数量但它不会深入了解特定消息。
关于amazon-web-services - 我能否判断 Amazon SQS 消息是否仍在传输中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31792753/