我在SQS中创建了一个队列,并添加了两条消息(序列化的PHP数组:
问题是,当我使用这些选项的receive_message函数时:
我100%确定队列中只有两条消息(我已经删除并重新创建了它以确保),但我只收到第一条消息,而且这个问题会时不时发生,有时我会在列表中混入第二条消息。如果我将
我还尝试过使用Amazon Scratchpad并进行API调用,结果相同。那么,SQS是坏掉了还是我做错了什么?
array('filename' => 0, ...)
和 array('filename' => 1, ...)
)。我正在使用来自他们git仓库的最新版本的amazon PHP SDK。问题是,当我使用这些选项的receive_message函数时:
MaxNumberOfMessages = 10
VisibilityTimeout = 0 // other values doesn't change much
我只得到了第一条消息,并且重复了10次:
<ReceiveMessageResponse>
−
<ReceiveMessageResult>
−
<Message>
<MessageId>82523332-75e0-444d-ae8f-55ccd5580beb</MessageId>
−
<ReceiptHandle>
v5iiyMGi3b6RunVNVvjOQOV+ZDqRV7sNLzj5pUAEj1brIAkucpYiGaM8UIdOEis9Kouh4s+cAkSAd7MhbJKPGM6SdKYE993x2Lf/DwEbhkfmzRxOevzUsyJCrrVdTSTSx0cNUqqV6Cgr/Asi72t/UOhbdXhTp3kaCaZfd2weymg=
</ReceiptHandle>
<MD5OfBody>ced185420292fbd06b32ea6e35da3d21</MD5OfBody>
−
<Body>
a:3:{s:8:"priority";i:2;s:8:"filename";i:0;s:11:"task_ticket";s:0:"";}
</Body>
</Message>
−
<Message>
<MessageId>82523332-75e0-444d-ae8f-55ccd5580beb</MessageId>
−
<ReceiptHandle>
v5iiyMGi3b6RunVNVvjOQOV+ZDqRV7sNLzj5pUAEj1brIAkucpYiGaM8UIdOEis9Kouh4s+cAkSAd7MhbJKPGM6SdKYE993x2Lf/DwEbhkfmzRxOevzUsyJCrrVdTSTSx0cNUqqV6Cgr/Asi72t/UOhbdXhTp3kaCaZfd2weymg=
</ReceiptHandle>
<MD5OfBody>ced185420292fbd06b32ea6e35da3d21</MD5OfBody>
−
<Body>
a:3:{s:8:"priority";i:2;s:8:"filename";i:0;s:11:"task_ticket";s:0:"";}
</Body>
</Message>
...and so on, always with "filename";i:0
我100%确定队列中只有两条消息(我已经删除并重新创建了它以确保),但我只收到第一条消息,而且这个问题会时不时发生,有时我会在列表中混入第二条消息。如果我将
VisibilityTimeout
保留为默认值3(或其他非零值),那么第一条消息会暂时消失(预期的),然后我会收到重复出现多次的第二条消息。
get_queue_size
返回2,这是正确的。我还尝试过使用Amazon Scratchpad并进行API调用,结果相同。那么,SQS是坏掉了还是我做错了什么?