鉴于亚马逊SQS消息,有没有办法通过API判断它是否仍在飞行中?或者,我是否需要在收到消息时记下时间戳,从当前时间减去该时间,并检查是否小于可见性超时?
答案 0 :(得分:4)
使用Amazon Simple Queuing Service(SQS)的正常流程是:
SendMessage
将消息推送到队列中(它可以在队列中保留最多14天)ReceiveMessage
从队列中检索消息(不保证先进先出)DeleteMessage
(它也可以调用ChangeMessageVisibility
来延长超时时间) 无法获取有关特定邮件的信息。而是应用程序要求邮件(或一批邮件),邮件变为不可见(或'在飞行中')。这样,您还可以访问可与ReceiptHandle
或DeleteMessage
一起使用的ChangeMessageVisibility
。
最接近的选项是致电GetQueueAttributes
。 ApproximateNumberOfMessagesNotVisible
的值将表示正在投放的消息数,但不会提供对特定消息的深入了解。