Refine search
/** * Attempts to retrieve messages from SQS and upon completion (successful or unsuccessful) * reports the batch as complete and open */ public void run() { try { visibilityDeadlineNano = System.nanoTime() + visibilityTimeoutNanos; ReceiveMessageRequest request = new ReceiveMessageRequest(qUrl).withMaxNumberOfMessages(config .getMaxBatchSize()); ResultConverter.appendUserAgent(request, AmazonSQSBufferedAsyncClient.USER_AGENT); if (config.getVisibilityTimeoutSeconds() > 0) { request.setVisibilityTimeout(config.getVisibilityTimeoutSeconds()); visibilityDeadlineNano = System.nanoTime() + TimeUnit.NANOSECONDS.convert(config.getVisibilityTimeoutSeconds(), TimeUnit.SECONDS); } if (config.isLongPoll()) { request.withWaitTimeSeconds(config.getLongPollWaitTimeoutSeconds()); } messages = sqsClient.receiveMessage(request).getMessages(); } catch (AmazonClientException e) { exception = e; } finally { // whatever happened, we are done and can be considered open open = true; parentBuffer.reportBatchFinished(this); } } }
ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest( url ); receiveMessageRequest.setAttributeNames(requestMessageAttributeNames); receiveMessageRequest.setMaxNumberOfMessages( limit ); receiveMessageRequest.setVisibilityTimeout( Math.max( MIN_VISIBILITY_TIMEOUT, fig.getVisibilityTimeout() / 1000 ) ); receiveMessageRequest.setWaitTimeSeconds( longPollTimeout / 1000 ); // convert to seconds List<Message> messages = result.getMessages();
@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<>(); }
/** * Simplified method form for invoking the ReceiveMessage operation. * * @see #receiveMessageAsync(ReceiveMessageRequest) */ @Override public java.util.concurrent.Future<ReceiveMessageResult> receiveMessageAsync(String queueUrl) { return receiveMessageAsync(new ReceiveMessageRequest().withQueueUrl(queueUrl)); }
com.amazonaws.internal.SdkInternalList<String> attributeNamesCopy = new com.amazonaws.internal.SdkInternalList<String>(attributeNames.length); for (QueueAttributeName value : attributeNames) { attributeNamesCopy.add(value.toString()); if (getAttributeNames() == null) { setAttributeNames(attributeNamesCopy); } else { getAttributeNames().addAll(attributeNamesCopy);
@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; }
/** * 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; }
private static ReceiveMessageRequest request(String queueUrl, int waitTimeSeconds) { return new ReceiveMessageRequest(queueUrl).withMaxNumberOfMessages(20).withWaitTimeSeconds(waitTimeSeconds); }
new ReceiveMessageRequest(sqsQueueUrl) .withMaxNumberOfMessages(10)).getMessages();
List<Message> messages = sqs.receiveMessage(new ReceiveMessageRequest(queueUrl)).getMessages(); for (Message message : messages) { String messageBody = message.getBody();
setAttributeNames(new com.amazonaws.internal.SdkInternalList<String>(attributeNames.length)); this.attributeNames.add(ele);
@Override public Future<ReceiveMessageResult> receiveMessageAsync( String queueUrl, AsyncHandler<ReceiveMessageRequest, ReceiveMessageResult> asyncHandler) { return receiveMessageAsync(new ReceiveMessageRequest(queueUrl), asyncHandler); }
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; }
ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(absoluteQueueUrl); receiveMessageRequest.setMaxNumberOfMessages(maxNumberOfMessages); receiveMessageRequest.setMessageAttributeNames(new ArrayList<String>(Arrays.asList("All"))); receiveMessageRequest.setWaitTimeSeconds(waitTimeSeconds); List<Message> msgs = receiveMessageResult.getMessages();
private void readRecordsIfNeeded() { while (records == null || !records.hasNext()) { ReceiveMessageRequest request = new ReceiveMessageRequest() .withQueueUrl(queueUrl) .withWaitTimeSeconds(waitTimeSeconds); records = consumer.receiveMessage(request).getMessages().iterator(); } }
@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; }
private void pull() { final ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(source.getRead().queueUrl()); receiveMessageRequest.setMaxNumberOfMessages(MAX_NUMBER_OF_MESSAGES); receiveMessageRequest.setAttributeNames( Arrays.asList(MessageSystemAttributeName.SentTimestamp.toString())); final ReceiveMessageResult receiveMessageResult = source.getSqs().receiveMessage(receiveMessageRequest); final List<Message> messages = receiveMessageResult.getMessages(); if (messages == null || messages.isEmpty()) { return; } for (Message message : messages) { messagesNotYetRead.add(message); } }
@Override public synchronized void start() throws Exception { if (isEnabled() && thread == null) { super.start(); this.thread = new Thread(() -> { // loop that polls new messages with maximum long poll time while (isStarted()) { try { ReceiveMessageRequest request = new ReceiveMessageRequest(queueUrl) .withWaitTimeSeconds(LONG_POLL_SECONDS); ReceiveMessageResult result = sqsClient.getSqs().receiveMessage(request); // apply the message handle chain and finally delete message if // everything else succeeds Stream<CompletableFuture<Message>> messages = result.getMessages().stream() .map(this::handleMessage) .map(this::completeMessage) .map(this::deleteMessage); sequence(messages).join(); // artificial slow down to allow scaling to happen Threads.sleep(10000); } catch (RuntimeException ex) { LOGGER.warn("SQS receive or message handling failed", ex); Threads.sleep(WAIT_AFTER_FAILURE_MILLIS); } } }); this.thread.start(); } }
ReceiveMessageRequest receive_request = new ReceiveMessageRequest() .withQueueUrl(queue_url) .withWaitTimeSeconds(20); sqs.receiveMessage(receive_request);
@Override public String pull() { String task = "[]"; if (!StringUtils.isBlank(url)) { try { ReceiveMessageRequest receiveReq = new ReceiveMessageRequest(url); receiveReq.setMaxNumberOfMessages(MAX_MESSAGES); List<Message> list = client().receiveMessage(receiveReq).getMessages(); if (list != null && !list.isEmpty()) { Message message = list.get(0); client().deleteMessage(new DeleteMessageRequest(url, message.getReceiptHandle())); task = message.getBody(); } } catch (AmazonServiceException ase) { logException(ase); } catch (AmazonClientException ace) { logger.error("Could not reach SQS. {}", ace.toString()); } } return task; }