Example usage for com.amazonaws.services.sqs.model ReceiveMessageRequest withMaxNumberOfMessages

List of usage examples for com.amazonaws.services.sqs.model ReceiveMessageRequest withMaxNumberOfMessages

Introduction

In this page you can find the example usage for com.amazonaws.services.sqs.model ReceiveMessageRequest withMaxNumberOfMessages.

Prototype


public ReceiveMessageRequest withMaxNumberOfMessages(Integer maxNumberOfMessages) 

Source Link

Document

The maximum number of messages to return.

Usage

From source file:com.athena.sqs.MessageReceiver.java

License:Apache License

public void doReceive(String queueName) throws Exception {
    String queueUrl = messageContext.getQueue(queueName);
    logger.debug("Receiving a message to [" + queueName + "][" + queueUrl);

    // Receive messages
    ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(queueUrl);

    while (true) {
        List<com.amazonaws.services.sqs.model.Message> messages = client
                .receiveMessage(receiveMessageRequest.withMaxNumberOfMessages(10)).getMessages();
        logger.debug(new Date() + " : message count : " + messages.size());

        if (messages.size() > 0) {

            for (com.amazonaws.services.sqs.model.Message message : messages) {
                //                   logger.debug("  Message");
                //                   logger.debug("    MessageId:     " + message.getMessageId());
                //                   logger.debug("    ReceiptHandle: " + message.getReceiptHandle());
                //                   logger.debug("    MD5OfBody:     " + message.getMD5OfBody());
                //                   logger.debug("    Body:          " + message.getBody());
                //                   for (Entry<String, String> entry : message.getAttributes().entrySet()) {
                //                       logger.debug("  Attribute");
                //                       logger.debug("    Name:  " + entry.getKey());
                //                       logger.debug("    Value: " + entry.getValue());
                //                   }
                logger.debug("  Message");
                String body = message.getBody();

                aggregator.aggregate(body);

                client.deleteMessage(new DeleteMessageRequest(queueUrl, message.getReceiptHandle()));
            }/* www  .  ja v a 2s .c  o  m*/

        } else {
            logger.debug("Nothing found, trying again in 3 seconds");
            Thread.sleep(pollingFrequency);
        }
    }
}

From source file:org.springframework.cloud.aws.messaging.listener.AbstractMessageListenerContainer.java

License:Apache License

private QueueAttributes queueAttributes(String queue, SqsMessageDeletionPolicy deletionPolicy) {
    String destinationUrl;//from  w w w.j a v a 2  s . co  m
    try {
        destinationUrl = getDestinationResolver().resolveDestination(queue);
    } catch (DestinationResolutionException e) {
        getLogger().warn(String.format("The queue with name '%s' does not exist.", queue), e);
        return null;
    }

    ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(destinationUrl)
            .withAttributeNames(RECEIVING_ATTRIBUTES).withMessageAttributeNames(RECEIVING_MESSAGE_ATTRIBUTES);
    if (getMaxNumberOfMessages() != null) {
        receiveMessageRequest.withMaxNumberOfMessages(getMaxNumberOfMessages());
    } else {
        receiveMessageRequest.withMaxNumberOfMessages(DEFAULT_MAX_NUMBER_OF_MESSAGES);
    }

    if (getVisibilityTimeout() != null) {
        receiveMessageRequest.withVisibilityTimeout(getVisibilityTimeout());
    }

    if (getWaitTimeOut() != null) {
        receiveMessageRequest.setWaitTimeSeconds(getWaitTimeOut());
    }

    GetQueueAttributesResult queueAttributes = getAmazonSqs().getQueueAttributes(
            new GetQueueAttributesRequest(destinationUrl).withAttributeNames(QueueAttributeName.RedrivePolicy));
    boolean hasRedrivePolicy = queueAttributes.getAttributes()
            .containsKey(QueueAttributeName.RedrivePolicy.toString());

    return new QueueAttributes(receiveMessageRequest, hasRedrivePolicy, deletionPolicy);
}

From source file:org.springframework.integration.aws.sqs.core.AmazonSQSOperationsImpl.java

License:Apache License

/**
 * Gets the specified number of Messages from SQS
 *//*w w  w  . jav  a2 s.co  m*/
public Collection<AmazonSQSMessage> receiveMessages(String queueURL, int maxNumberOfMessages) {
    ReceiveMessageRequest request = new ReceiveMessageRequest(queueURL);
    if (maxNumberOfMessages > 0)
        request.withMaxNumberOfMessages(maxNumberOfMessages);
    else
        request.withMaxNumberOfMessages(1);

    ReceiveMessageResult result;
    try {
        result = clientFactory.getClient(queueURL).receiveMessage(request);
    } catch (Exception e) {
        logger.error("Exception thrown while receiving a message from the queue \"" + queueURL
                + "\", check exception for more details", e);
        throw new AmazonSQSException(credentials.getAccessKey(),
                "Exception while receiving message from the queue \"" + queueURL
                        + "\", see nested exception for more details",
                queueURL, null, e);
    }
    List<Message> messages = result.getMessages();
    Collection<AmazonSQSMessage> response = new ArrayList<AmazonSQSMessage>();
    for (Message message : messages) {
        buildSQSMessage(response, message);
    }
    return response;
}

From source file:support.SQS.java

License:Open Source License

public List<Message> receiveMessages() throws Exception {
    // Receive messages
    ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(receive_queue_url);
    receiveMessageRequest.withMessageAttributeNames(message_attribute_name);
    receiveMessageRequest.withAttributeNames(attribute_name);
    receiveMessageRequest.withWaitTimeSeconds(wait_time_seconds);
    receiveMessageRequest.withMaxNumberOfMessages(max_no_messages);
    receiveMessageRequest.withVisibilityTimeout(visibility_timeout);

    List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages();
    return messages;
}