我有一条 SQS 消息,其“接收计数”为 16。但是,SQS 队列的可见性超时为 2 小时,并且该消息仅在几个小时前“发送”。消息是否应该至少需要 32 小时才能“接收计数”为 16,因为每次收到消息后 2 小时内都看不到?
我预计接收计数会低得多,因为一旦收到消息,几个小时内就无法收到。即使多次投递 - 我也不会想到收到的数量会这么高。
这只是一个理论,但是...
当Amazon SQS管理控制台用于显示消息内容时,它实际上需要检索(接收)消息。这使它们移动到“飞行中”并增加接收计数。
我注意到有一个名为 ChangeMessageVisibility - Amazon Simple Queue Service 的 SQS API 调用。管理控制台有可能利用此功能在显示消息后将消息不可见值快速重置为零。 (如果没有,那么在控制台中预览的消息将需要等待其完全可见性超时,这可能会给消费者带来问题。) 因此,如果您一直在 SQS 控制台中查看消息,这
可能可以解释您所经历的高接收计数。 或者,也许有其他东西正在调用该 API 来更改可见性超时。