使用AWS SDK for PHP获取SQS队列中的所有消息
我正在尝试使用使用AWS SDK for PHP获取SQS队列中的所有消息,php,amazon-web-services,amazon-sqs,Php,Amazon Web Services,Amazon Sqs,我正在尝试使用AWS PHP SDK检索队列中的所有消息 前面曾经有一个get\u queue\u size()方法来获取队列大小,然后我将迭代循环以获取所有消息 在最新的SDK中,我没有看到这样的方法 有人能告诉我如何使用最新的PHP SDK接收队列中的所有消息吗?您可以获取队列中的所有消息,但无法一次获取所有消息。您可以请求消息,并指定希望的最大值,一次最多10个,并且您需要请求另一组消息,直到队列为空为止(即使如此,如果可能随时有新消息进来,您也需要不断轮询SQS) 同样重要的是,请记住,
AWS PHP SDK
检索队列中的所有消息
前面曾经有一个get\u queue\u size()
方法来获取队列大小,然后我将迭代循环以获取所有消息
在最新的SDK中,我没有看到这样的方法
有人能告诉我如何使用最新的PHP SDK接收队列中的所有消息吗?您可以获取队列中的所有消息,但无法一次获取所有消息。您可以请求消息,并指定希望的最大值,一次最多10个,并且您需要请求另一组消息,直到队列为空为止(即使如此,如果可能随时有新消息进来,您也需要不断轮询SQS)
同样重要的是,请记住,即使队列中的消息少于10条,并且请求最多10条(并且即使当前没有其他客户端进行轮询),也可能无法在给定呼叫中获取队列中的所有消息-您需要重复轮询。要获取队列大小,请使用: 要从队列中获取消息,请使用。E.J.Brennan的另一个回答提供了关于这一问题的信息
$result = $client->getQueueAttributes(array(
'QueueUrl' => '{{QUEUE_URL}}',
'AttributeNames' => array('ApproximateNumberOfMessages'),
));
$queueSize = $result['Attribute']['ApproximateNumberOfMessages'];