我在SQS中创建了一个队列,添加了两条消息(序列化的PHP数组:array('filename'=> 0,...)和array('filename'=> 1,.. ))。我从他们的git仓库使用最新版本的亚马逊PHP for PHP。亚马逊简单队列服务(SQS)
的问题是,当我使用RECEIVE_MESSAGE功能与这些选项: MaxNumberOfMessages = 10 VisibilityTimeout = 0 //其它值变化不大
我只得到了第一条消息,重复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%认为队列中只有2条消息(我将其删除并重新创建,以确保),但我只获得第一条,多次填充。这种情况会不时发生变化,有时我会得到第二个混合在列表中。如果我将VisibilityTimeout作为默认值3(或其他非零值)离开,第一个会消失一段时间(如预期的那样),然后我将第二个重复多次:)
get_queue_size返回2,这是正确的。
我也尝试了亚马逊便笺簿,只是用相同的结果进行API调用。那么,SQS是否破裂,或者我正在做一些完全错误的事情?
谢谢!
没有看到代码很难帮忙。 – 2011-03-14 21:30:41