无法查看/接收来自AWS SQS的所有消息

时间:2020-09-13 22:45:46

标签: amazon-web-services amazon-sqs

我有一个FIFO SQS队列,我一个接一个地发送4条消息。 发送前4条消息后,我运行了一个程序来接收它们,但是仅返回2条消息-即使经过长时间轮询并且最大消息数为10。

我已经发送了4条消息-现在我总共有8条消息。用于接收消息的AWS SQS UI和用于接收消息的我的代码-仅显示2条消息,但表示有8条消息可用。

再发送4条消息后,您可以在所附的屏幕截图中看到SQS UI显示12条可用消息,但仅列出2条消息,并且我有C#代码以长轮询方式接收消息,该函数也仅返回2条消息

enter image description here

我在查看所有可用消息时做错了什么?

2 个答案:

答案 0 :(得分:1)

您需要使用ReceiptHandle删除该消息以获取其他消息。 FIFO队列保证在消息组内的顺序,并且直到处理完先前的消息后,才传递消息。您只会看到一些消息,而看不到其他消息,因为它们是其消息组队列中的第一条消息。

我已经遇到过一段时间了,blogged about的工作原理。

答案 1 :(得分:1)

您已选择使用先进先出(FIFO)队列。

为确保按正确的顺序处理消息,如果当前正在处理具有该ID的消息,则无法检索具有相同消息组ID的消息。否则,就有可能会乱序处理邮件。

这就是为什么您要求提供更多消息而不提供任何消息的原因。

如果您只是希望消息按FIFO顺序而不在消息组内进行特定排序,建议您提供随机的消息组ID ,以便可以分别处理每条消息。

>

请参阅:Amazon SQS FIFO (First-In-First-Out) queues - Amazon Simple Queue Service