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); } } }
public ReceiveMessageResult unmarshall(StaxUnmarshallerContext context) throws Exception { ReceiveMessageResult receiveMessageResult = new ReceiveMessageResult(); int originalDepth = context.getCurrentDepth(); int targetDepth = originalDepth + 1; if (context.isStartOfDocument()) targetDepth += 2; while (true) { XMLEvent xmlEvent = context.nextEvent(); if (xmlEvent.isEndDocument()) return receiveMessageResult; if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) { if (context.testExpression("Message", targetDepth)) { receiveMessageResult.withMessages(MessageStaxUnmarshaller.getInstance().unmarshall(context)); continue; } } else if (xmlEvent.isEndElement()) { if (context.getCurrentDepth() < originalDepth) { return receiveMessageResult; } } } }
ReceiveMessageResult result = new ReceiveMessageResult(); LinkedList<Message> messages = new LinkedList<Message>(); result.setMessages(messages); Exception exception = task.getException(); int numRetrieved = 0; finishedTasks.removeFirst(); result.setMessages(messages);
@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<>(); }
ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest( url ); receiveMessageRequest.setAttributeNames(requestMessageAttributeNames); receiveMessageRequest.setMaxNumberOfMessages( limit ); receiveMessageRequest.setVisibilityTimeout( Math.max( MIN_VISIBILITY_TIMEOUT, fig.getVisibilityTimeout() / 1000 ) ); List<Message> messages = result.getMessages();
ReceiveMessageRequest req = new ReceiveMessageRequest(); req.setWaitTimeSeconds(10); req.setMaxNumberOfMessages(10); req.setVisibilityTimeout(300); req.setQueueUrl(sqsQueueUrl); List<Message> messages = msgResult.getMessages();
@Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getMessages() == null) ? 0 : getMessages().hashCode()); return hashCode; }
@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; }
private void readRecordsIfNeeded() { while (records == null || !records.hasNext()) { ReceiveMessageRequest request = new ReceiveMessageRequest() .withQueueUrl(queueUrl) .withWaitTimeSeconds(waitTimeSeconds); records = consumer.receiveMessage(request).getMessages().iterator(); } }
new ReceiveMessageRequest(sqsQueueUrl) .withMaxNumberOfMessages(10)).getMessages();
List<Message> messages = sqs.receiveMessage(new ReceiveMessageRequest(queueUrl)).getMessages(); for (Message message : messages) { String messageBody = message.getBody();
ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(absoluteQueueUrl); receiveMessageRequest.setMaxNumberOfMessages(maxNumberOfMessages); receiveMessageRequest.setMessageAttributeNames(new ArrayList<String>(Arrays.asList("All"))); List<Message> msgs = receiveMessageResult.getMessages();
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(); } }
@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; }
@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; }
@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; }
ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(queueUrl); receiveMessageRequest.setMessageAttributeNames(new ArrayList<String>(Arrays.asList("All"))); ReceiveMessageResult result = sqs.receiveMessage(receiveMessageRequest); logger.debug("event=receive_message queue_url= " + queueUrl + " user_id=" + userId); receivedMessages=result.getMessages(); if(receivedMessages!=null&&receivedMessages.size()>0){ receivedMessage=receivedMessages.get(0);
receiveMessageRequest.getRequestClientOptions().appendUserAgent(SQSExtendedClientConstants.USER_AGENT_HEADER); if (!receiveMessageRequest.getMessageAttributeNames().contains(SQSExtendedClientConstants.RESERVED_ATTRIBUTE_NAME)) { receiveMessageRequest.getMessageAttributeNames().add(SQSExtendedClientConstants.RESERVED_ATTRIBUTE_NAME); List<Message> messages = receiveMessageResult.getMessages(); for (Message message : messages) {
/** * <p> * A list of messages. * </p> * * @param messages * A list of messages. * @return Returns a reference to this object so that method calls can be chained together. */ public ReceiveMessageResult withMessages(java.util.Collection<Message> messages) { setMessages(messages); return this; }