Recupere várias mensagens do SQS

Tenho várias mensagens no SQS. O código a seguirsempr retorna apenas um, mesmo que haja dezenas visíveis (não em andamento). setMaxNumberOfMessages Eu pensei que permitiria o consumo múltiplo de uma só vez .. eu não entendi isso?

 CreateQueueRequest createQueueRequest = new CreateQueueRequest().withQueueName(queueName);
 String queueUrl = sqs.createQueue(createQueueRequest).getQueueUrl();
 ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(queueUrl);
 receiveMessageRequest.setMaxNumberOfMessages(10);
 List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages();
 for (Message message : messages) {
      // i'm a message from SQS
 }

Eu também tentei usar withMaxNumberOfMessages sem essa sorte:

 receiveMessageRequest.withMaxNumberOfMessages(10);

Como sei se há mensagens na fila? Mais de 1?

 Set<String> attrs = new HashSet<String>();
 attrs.add("ApproximateNumberOfMessages");
 CreateQueueRequest createQueueRequest = new CreateQueueRequest().withQueueName(queueName);
 GetQueueAttributesRequest a = new GetQueueAttributesRequest().withQueueUrl(sqs.createQueue(createQueueRequest).getQueueUrl()).withAttributeNames(attrs);
 Map<String,String> result = sqs.getQueueAttributes(a).getAttributes();
 int num = Integer.parseInt(result.get("ApproximateNumberOfMessages"));

O acima sempre é executado antes e me dá umint isto é> 1

Obrigado pela sua contribuiçã

questionAnswers(12)

yourAnswerToTheQuestion