Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS SQS FIFO can';我不能接收所有的信息_Amazon Web Services_Amazon Sqs - Fatal编程技术网

Amazon web services AWS SQS FIFO can';我不能接收所有的信息

Amazon web services AWS SQS FIFO can';我不能接收所有的信息,amazon-web-services,amazon-sqs,Amazon Web Services,Amazon Sqs,我正在学习AWS SQS,我已经向FIFO队列发送了6消息,使用相同的GroupId。但是当我尝试轮询消息时,我只能接收其中的2条消息(为什么?我使用bot3API设置MaxNumberOfMessages=10,但我只能接收2条消息。我如何才能接收所有消息?) (如图所示,我有5条可用消息,但我只能收到2条消息。) 我试图删除收到的两条消息中的一条,然后再次轮询。被删除的一条不见了,我收到了一条新消息。但总的来说,还是有两条消息。来自: 要返回的最大消息数。Amazon SQS不会返回超过此值

我正在学习AWS SQS,我已经向FIFO队列发送了
6
消息,使用相同的
GroupId
。但是当我尝试轮询消息时,我只能接收其中的2条消息(为什么?我使用
bot3
API设置
MaxNumberOfMessages=10
,但我只能接收2条消息。我如何才能接收所有消息?)

(如图所示,我有5条可用消息,但我只能收到2条消息。)

我试图删除收到的两条消息中的一条,然后再次轮询。被删除的一条不见了,我收到了一条新消息。但总的来说,还是有两条消息。

来自:

要返回的最大消息数。Amazon SQS不会返回超过此值的消息(但是,返回的消息可能会更少


就像doc写的一样,你可以收到更少的消息。您必须多次调用
ReceiveMessage
,通常在循环中完成。您还可以增加
WaitTimeSeconds
,以便
ReceiveMessage
在没有消息时不会立即返回。

使用Amazon SQS FIFO队列意味着您希望按顺序接收消息。它还将尝试确保在消息组中排序

这意味着,如果当前正在处理给定消息组ID的某些消息(“正在处理中”),则将不再提供该消息组的消息,因为如果未完全处理,可能会将较早的消息返回队列。这可能会导致邮件被无序处理

发件人:

要在单个FIFO队列中交错多个有序消息组,请使用消息组ID值(例如,多个用户的会话数据)。在此场景中,多个使用者可以处理队列,但每个用户的会话数据都是以FIFO方式处理的

当属于特定消息组ID的消息不可见时,其他消费者无法处理具有相同消息组ID的消息

因此,您的选择是:

  • 不要使用FIFO队列,或者
  • 使用不同的消息组ID,或
  • 对它正在做的事情感到高兴,因为这是期望的FIFO行为

为什么使用相同的消息组ID?您希望该组中的所有邮件都按顺序处理吗?@JohnRotenstein-Yes