@Override public AmazonAwsSQSMessage receiveMessage() throws JMSException { AmazonAwsSQSMessage sqsMessage; try { ReceiveMessageRequest request = new ReceiveMessageRequest(_queueUrl) .withAttributeNames(AmazonAwsSQSConnector.MESSAGE_ATTRIBUTE_APPROXIMATE_RECEIVE_COUNT); ReceiveMessageResult result = _amazonAwsSQSConnector.getAmazonSQS().receiveMessage(request); List<Message> messages = result.getMessages(); sqsMessage = (messages != null && messages.size() > 0) ? new AmazonAwsSQSMessage(messages.get(0)) : null; } catch (AmazonClientException e) { throw _amazonAwsSQSConnector.handleAWSException("Unable to retrieve message from queue " + _queueUrl, e); } return sqsMessage; }
@Override public Message<String> receive(long timeout) { ReceiveMessageResult receiveMessageResult = this.amazonSqs.receiveMessage( new ReceiveMessageRequest(this.queueUrl). withMaxNumberOfMessages(1). withWaitTimeSeconds(Long.valueOf(timeout).intValue()). withAttributeNames(ATTRIBUTE_NAMES). withMessageAttributeNames(MESSAGE_ATTRIBUTE_NAMES)); if (receiveMessageResult.getMessages().isEmpty()) { return null; } com.amazonaws.services.sqs.model.Message amazonMessage = receiveMessageResult.getMessages().get(0); Message<String> message = createMessage(amazonMessage); this.amazonSqs.deleteMessage(new DeleteMessageRequest(this.queueUrl, amazonMessage.getReceiptHandle())); return message; }
new ReceiveMessageRequest().withMaxNumberOfMessages(this.batchSize) .withQueueUrl(queueUrl); request.withAttributeNames("All");
@Override public Message<String> receive(long timeout) { ReceiveMessageResult receiveMessageResult = this.amazonSqs.receiveMessage( new ReceiveMessageRequest(this.queueUrl). withMaxNumberOfMessages(1). withWaitTimeSeconds(Long.valueOf(timeout).intValue()). withAttributeNames(ATTRIBUTE_NAMES). withMessageAttributeNames(MESSAGE_ATTRIBUTE_NAMES)); if (receiveMessageResult.getMessages().isEmpty()) { return null; } com.amazonaws.services.sqs.model.Message amazonMessage = receiveMessageResult.getMessages().get(0); Message<String> message = createMessage(amazonMessage); this.amazonSqs.deleteMessage(new DeleteMessageRequest(this.queueUrl, amazonMessage.getReceiptHandle())); return message; }
.withQueueUrl(queueUrl) .withMaxNumberOfMessages(maxTasks) .withAttributeNames("SentTimestamp", "ApproximateReceiveCount")); if (result.getMessages() != null && result.getMessages().size() > 0) { Set<Task> tasks = new HashSet<>();
.withAttributeNames(ALL) .withMessageAttributeNames(ALL) .withWaitTimeSeconds(WAIT_TIME_SECONDS);
public ReceiveMessageRequest getReceiveMessageRequest() { ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(this.destinationUrl). withAttributeNames(RECEIVING_ATTRIBUTES). withMessageAttributeNames(RECEIVING_MESSAGE_ATTRIBUTES); if (this.maxNumberOfMessages != null) { receiveMessageRequest.withMaxNumberOfMessages(this.maxNumberOfMessages); } else { receiveMessageRequest.withMaxNumberOfMessages(DEFAULT_MAX_NUMBER_OF_MESSAGES); } if (this.visibilityTimeout != null) { receiveMessageRequest.withVisibilityTimeout(this.visibilityTimeout); } if (this.waitTimeOut != null) { receiveMessageRequest.setWaitTimeSeconds(this.waitTimeOut); } return receiveMessageRequest; }
public ReceiveMessageRequest getReceiveMessageRequest() { ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(this.destinationUrl). withAttributeNames(RECEIVING_ATTRIBUTES). withMessageAttributeNames(RECEIVING_MESSAGE_ATTRIBUTES); if (this.maxNumberOfMessages != null) { receiveMessageRequest.withMaxNumberOfMessages(this.maxNumberOfMessages); } else { receiveMessageRequest.withMaxNumberOfMessages(DEFAULT_MAX_NUMBER_OF_MESSAGES); } if (this.visibilityTimeout != null) { receiveMessageRequest.withVisibilityTimeout(this.visibilityTimeout); } if (this.waitTimeOut != null) { receiveMessageRequest.setWaitTimeSeconds(this.waitTimeOut); } return receiveMessageRequest; }
.withAttributeNames(ALL) .withMessageAttributeNames(ALL) .withWaitTimeSeconds(WAIT_TIME_SECONDS);
/** * Poll SQS queue for incoming messages, filter them, and return a list of SQS Messages. * * @return a list of SQS messages. */ public List<Message> pollQueue() { boolean success = false; ProgressStatus pollQueueStatus = new ProgressStatus(ProgressState.pollQueue, new BasicPollQueueInfo(0, success)); final Object reportObject = progressReporter.reportStart(pollQueueStatus); ReceiveMessageRequest request = new ReceiveMessageRequest().withAttributeNames(ALL_ATTRIBUTES); request.setQueueUrl(config.getSqsUrl()); request.setVisibilityTimeout(config.getVisibilityTimeout()); request.setMaxNumberOfMessages(DEFAULT_SQS_MESSAGE_SIZE_LIMIT); request.setWaitTimeSeconds(DEFAULT_WAIT_TIME_SECONDS); List<Message> sqsMessages = new ArrayList<Message>(); try { ReceiveMessageResult result = sqsClient.receiveMessage(request); sqsMessages = result.getMessages(); logger.info("Polled " + sqsMessages.size() + " sqs messages from " + config.getSqsUrl()); success = true; } catch (AmazonServiceException e) { LibraryUtils.handleException(exceptionHandler, pollQueueStatus, e, "Failed to poll sqs message."); } finally { LibraryUtils.endToProcess(progressReporter, success, pollQueueStatus, reportObject); } return sqsMessages; }
@Bean public AmazonSQSAsync amazonSqs() { AmazonSQSAsync sqs = mock(AmazonSQSAsync.class); given(sqs.getQueueUrl(new GetQueueUrlRequest("testQueue"))) .willReturn(new GetQueueUrlResult().withQueueUrl("http://testQueue.amazonaws.com")); given(sqs.receiveMessage(new ReceiveMessageRequest("http://testQueue.amazonaws.com") .withAttributeNames("All") .withMessageAttributeNames("All") .withMaxNumberOfMessages(10) .withWaitTimeSeconds(20))) .willReturn(new ReceiveMessageResult() .withMessages(new Message().withBody("messageContent"), new Message().withBody("messageContent2"))) .willReturn(new ReceiveMessageResult()); given(sqs.getQueueAttributes(any(GetQueueAttributesRequest.class))) .willReturn(new GetQueueAttributesResult()); return sqs; }