@VisibleForTesting List<Message> receiveMessages() { try { ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest() .withQueueUrl(queueURL) .withVisibilityTimeout(visibilityTimeoutInSeconds) .withMaxNumberOfMessages(batchSize); ReceiveMessageResult result = client.receiveMessage(receiveMessageRequest); List<Message> messages = result.getMessages().stream() .map(msg -> new Message(msg.getMessageId(), msg.getBody(), msg.getReceiptHandle())) .collect(Collectors.toList()); Monitors.recordEventQueueMessagesProcessed(QUEUE_TYPE, this.queueName, messages.size()); return messages; } catch (Exception e) { logger.error("Exception while getting messages from SQS", e); Monitors.recordObservableQMessageReceivedErrors(QUEUE_TYPE); } return new ArrayList<>(); }
@Override public List<ScanRangeTask> claimScanRangeTasks(int max, Duration ttl) { if (max == 0) { return ImmutableList.of(); } List<Message> messages = _sqs.receiveMessage(new ReceiveMessageRequest() .withQueueUrl(getQueueUrl(_pendingScanRangeQueue)) .withMaxNumberOfMessages(Math.min(max, 10)) // SQS cannot claim more than 10 messages .withVisibilityTimeout(toSeconds(ttl)) ).getMessages(); return FluentIterable.from(messages) .transform(new Function<Message, ScanRangeTask>() { @Override public ScanRangeTask apply(Message message) { QueueScanRangeTask task = JsonHelper.fromJson(message.getBody(), QueueScanRangeTask.class); task.setMessageId(message.getReceiptHandle()); return task; } }) .toList(); }
@VisibleForTesting List<Message> receiveMessages() { try { ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest() .withQueueUrl(queueURL) .withVisibilityTimeout(visibilityTimeoutInSeconds) .withMaxNumberOfMessages(batchSize); ReceiveMessageResult result = client.receiveMessage(receiveMessageRequest); List<Message> messages = result.getMessages().stream() .map(msg -> new Message(msg.getMessageId(), msg.getBody(), msg.getReceiptHandle())) .collect(Collectors.toList()); Monitors.recordEventQueueMessagesProcessed(QUEUE_TYPE, this.queueName, messages.size()); return messages; } catch (Exception e) { logger.error("Exception while getting messages from SQS", e); Monitors.recordObservableQMessageReceivedErrors(QUEUE_TYPE); } return new ArrayList<>(); }
private void listenForMessages() { while (isEnabled.get()) { ReceiveMessageResult receiveMessageResult = amazonSQS.receiveMessage( new ReceiveMessageRequest(queueId) .withMaxNumberOfMessages(AWS_MAX_NUMBER_OF_MESSAGES) .withVisibilityTimeout(subscription.getVisibilityTimeout()) .withWaitTimeSeconds(subscription.getWaitTimeSeconds()) .withMessageAttributeNames("All") ); if (receiveMessageResult.getMessages().isEmpty()) { log.debug("Received no messages for queue: {}", queueARN); continue; } receiveMessageResult.getMessages().forEach(this::handleMessage); } }
@Override public List<ScanRangeComplete> claimCompleteScanRanges(Duration ttl) { List<Message> messages = _sqs.receiveMessage(new ReceiveMessageRequest() .withQueueUrl(getQueueUrl(_completeScanRangeQueue)) .withMaxNumberOfMessages(10) .withVisibilityTimeout(toSeconds(ttl)) ).getMessages(); return FluentIterable.from(messages) .transform(new Function<Message, ScanRangeComplete>() { @Override public ScanRangeComplete apply(Message message) { QueueScanRangeComplete completion = JsonHelper.fromJson(message.getBody(), QueueScanRangeComplete.class); completion.setMessageId(message.getReceiptHandle()); return completion; } }) .toList(); }
new ReceiveMessageRequest(queueId) .withMaxNumberOfMessages(AWS_MAX_NUMBER_OF_MESSAGES) .withVisibilityTimeout(properties.getVisibilityTimeout()) .withWaitTimeSeconds(properties.getWaitTimeSeconds()) );
while (counter < maxNumberOfMessages) { ReceiveMessageRequest request = new ReceiveMessageRequest().withQueueUrl(queueUrl) .withMaxNumberOfMessages(MAX_MESSAGE_CONSUME_BATCH_SIZE).withVisibilityTimeout(30); List<DeleteMessageBatchRequestEntry> messagesToDelete = sqs.receiveMessage(request).getMessages().stream().map(message -> {
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; }
new ReceiveMessageRequest(queueId) .withMaxNumberOfMessages(AWS_MAX_NUMBER_OF_MESSAGES) .withVisibilityTimeout(properties.getVisibilityTimeout()) .withWaitTimeSeconds(properties.getWaitTimeSeconds()) );