List of usage examples for com.amazonaws.services.sqs.model Message getMessageId
public String getMessageId()
A unique identifier for the message.
From source file:com.espressologic.aws.sqs.SqsAmazonService.java
License:Open Source License
public static String readMessage(String messageID) { // Receive messages AmazonSQS sqs = createAWSCredentials(); System.out.println("Receiving messages from " + myQueueUrl + ".\n"); ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(myQueueUrl); List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages(); StringBuffer sb = new StringBuffer(); sb.append("["); String sep = ""; String receipt = null;//from w ww . j a v a 2 s. c om for (Message message : messages) { if (message.getMessageId().equals(messageID)) { displayMessageContent(message); sb.append(sep); sb.append("\"message\" :"); sb.append(message.getBody()); if ("".equals(sep)) sep = ","; receipt = message.getReceiptHandle(); deleteMessages(receipt); } } sb.append("]"); System.out.println(); return sb.toString(); }
From source file:com.espressologic.aws.sqs.SqsAmazonService.java
License:Open Source License
private static void displayMessageContent(Message message) { System.out.println(" Message"); System.out.println(" MessageId: " + message.getMessageId()); System.out.println(" ReceiptHandle: " + message.getReceiptHandle()); System.out.println(" MD5OfBody: " + message.getMD5OfBody()); System.out.println(" Body: " + message.getBody()); for (Entry<String, String> entry : message.getAttributes().entrySet()) { System.out.println(" Attribute"); System.out.println(" Name: " + entry.getKey()); System.out.println(" Value: " + entry.getValue()); }//from w ww .j a v a2 s.co m }
From source file:com.ibm.connectors.AmazonSQS.AmazonSQSInputConnector.java
License:Open Source License
@Override public void poll(long waitInterval) { Properties properties = new Properties(); String access_key_id = getProperty("AccessKeyId"); String secret_access_key = getProperty("SecretAccessKey"); BasicAWSCredentials credentials = new BasicAWSCredentials(access_key_id, secret_access_key); AmazonSQS sqs = new AmazonSQSClient(credentials); // Region selection Region region = Region.getRegion(Regions.fromName(getProperty("region"))); sqs.setRegion(region);// w ww . j a va 2 s.co m GetQueueUrlResult queueUrl = sqs.getQueueUrl(getProperty("Queue")); ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(queueUrl.getQueueUrl()); List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages(); String outputMessage = ""; // if there are messages then do the processing if (messages.size() > 0) { //append the message properties to the localenv tree for (Message message : messages) { properties.setProperty("MessageId", message.getMessageId()); properties.setProperty("ReceiptHandle", message.getReceiptHandle()); properties.setProperty("MD5OfBody", message.getMD5OfBody()); // get the message body to a string outputMessage = message.getBody(); } properties.setProperty("queueUrl", queueUrl.getQueueUrl()); // delete the message from the queue String messageReceiptHandle = messages.get(0).getReceiptHandle(); sqs.deleteMessage(new DeleteMessageRequest(queueUrl.getQueueUrl(), messageReceiptHandle)); ConnectorCallback callback = getCallback(); callback.processInboundData(outputMessage.getBytes(), properties); } }
From source file:com.mateusz.mateuszsqs.SQSConfig.java
public static List<String> getMessages(AmazonSQS sqs, String sqsURL) { ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(sqsURL); List<Message> messages = sqs.receiveMessage(receiveMessageRequest.withMessageAttributeNames("All")) .getMessages();//from ww w .j a va 2 s . c o m List<String> filesToProcess = new ArrayList<String>(); for (Message message : messages) { System.out.println(" Message"); System.out.println(" MessageId: " + message.getMessageId()); System.out.println(" ReceiptHandle: " + message.getReceiptHandle()); System.out.println(" MD5OfBody: " + message.getMD5OfBody()); System.out.println(" Body: " + message.getBody()); for (Map.Entry<String, MessageAttributeValue> entry : message.getMessageAttributes().entrySet()) { System.out.println(" Attribute"); System.out.println(" Name: " + entry.getKey()); System.out.println(" Value: " + entry.getValue().getStringValue()); filesToProcess.add(entry.getValue().getStringValue()); } System.out.println("Deleting a message.\n"); String messageReceiptHandle = message.getReceiptHandle(); sqs.deleteMessage(new DeleteMessageRequest(sqsURL, messageReceiptHandle)); } return filesToProcess; }
From source file:com.netflix.bdp.s3mper.alert.impl.AlertJanitor.java
License:Apache License
private void delete(String queue, List<Message> messages) { List<DeleteMessageBatchRequestEntry> deleteRequests = new ArrayList<DeleteMessageBatchRequestEntry>(); for (Message m : messages) { deleteRequests.add(new DeleteMessageBatchRequestEntry().withId(m.getMessageId()) .withReceiptHandle(m.getReceiptHandle())); }/*from w ww . ja v a 2s . c om*/ log.info(format("Deleting %s messages", deleteRequests.size())); DeleteMessageBatchRequest batchDelete = new DeleteMessageBatchRequest(); batchDelete.setQueueUrl(queue); batchDelete.setEntries(deleteRequests); sqs.deleteMessageBatch(batchDelete); }
From source file:com.netflix.spinnaker.echo.pubsub.amazon.SQSSubscriber.java
License:Apache License
private void handleMessage(Message message) { try {/*from w w w. jav a2 s . c om*/ String messageId = message.getMessageId(); String messagePayload = unmarshallMessageBody(message.getBody()); Map<String, String> stringifiedMessageAttributes = message.getMessageAttributes().entrySet().stream() .collect(Collectors.toMap(Map.Entry::getKey, e -> String.valueOf(e.getValue()))); log.debug("Received Amazon sqs message: {} with payload: {} and attributes: {}", messageId, messagePayload, stringifiedMessageAttributes); MessageDescription description = MessageDescription.builder().subscriptionName(subscriptionName()) .messagePayload(messagePayload).messageAttributes(stringifiedMessageAttributes) .pubsubSystem(pubsubSystem).ackDeadlineMillis(TimeUnit.SECONDS.toMillis(50)) // Set a high upper bound on message processing time. .retentionDeadlineMillis(TimeUnit.DAYS.toMillis(7)) // Expire key after max retention time, which is 7 days. .build(); AmazonMessageAcknowledger acknowledger = new AmazonMessageAcknowledger(amazonSQS, queueId, message, registry, getName()); if (subscription.getMessageFormat() != AmazonPubsubProperties.MessageFormat.NONE) { description.setArtifacts(parseArtifacts(description.getMessagePayload(), messageId)); } pubsubMessageHandler.handleMessage(description, acknowledger, identity.getIdentity(), messageId); } catch (Exception e) { log.error("Message {} from queue {} failed to be handled", message, queueId); // Todo emjburns: add dead-letter queue policy } }
From source file:com.netflix.spinnaker.echo.pubsub.aws.SQSSubscriber.java
License:Apache License
private void handleMessage(Message message) { try {//from w ww .j a v a 2 s . c o m String messageId = message.getMessageId(); String messagePayload = unmarshalMessageBody(message.getBody()); Map<String, String> stringifiedMessageAttributes = message.getMessageAttributes().entrySet().stream() .collect(Collectors.toMap(Map.Entry::getKey, e -> String.valueOf(e.getValue()))); //SNS message attributes are stored within the SQS message body. Add them to other attributes.. Map<String, MessageAttributeWrapper> messageAttributes = unmarshalMessageAttributes(message.getBody()); stringifiedMessageAttributes.putAll(messageAttributes.entrySet().stream() .collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().getAttributeValue()))); MessageDescription description = MessageDescription.builder().subscriptionName(getSubscriptionName()) .messagePayload(messagePayload).messageAttributes(stringifiedMessageAttributes) .pubsubSystem(pubsubSystem).ackDeadlineSeconds(60) // Set a high upper bound on message processing time. .retentionDeadlineSeconds(subscription.getDedupeRetentionSeconds()) // Configurable but default to 1 hour .build(); AmazonMessageAcknowledger acknowledger = new AmazonMessageAcknowledger(amazonSQS, queueId, message, registry, getName()); if (subscription.getMessageFormat() != AmazonPubsubProperties.MessageFormat.NONE) { try { description.setArtifacts(parseArtifacts(description.getMessagePayload(), messageId)); } catch (FatalTemplateErrorsException e) { log.error("Template failed to process artifacts for message {}", message, e); } } if (subscription.getAlternateIdInMessageAttributes() != null && !subscription.getAlternateIdInMessageAttributes().isEmpty() && stringifiedMessageAttributes.containsKey(subscription.getAlternateIdInMessageAttributes())) { // Message attributes contain the unique id used for deduping messageId = stringifiedMessageAttributes.get(subscription.getAlternateIdInMessageAttributes()); } pubsubMessageHandler.handleMessage(description, acknowledger, identity.getIdentity(), messageId); } catch (Exception e) { registry.counter(getFailedToBeHandledMetricId(e)).increment(); log.error("Message {} from queue {} failed to be handled", message, queueId, e); // Todo emjburns: add dead-letter queue policy } }
From source file:com.pinterest.teletraan.worker.LaunchEventCollector.java
License:Apache License
public void collectEvents() throws Exception { while (true) { ReceiveMessageRequest request = new ReceiveMessageRequest(); request.setMaxNumberOfMessages(10); ReceiveMessageResult result = sqsClient.receiveMessage(request); List<Message> messageList = result.getMessages(); if (messageList.isEmpty()) { LOG.info("No more Launch activity available at the moment."); return; }// w w w . j a va 2 s. c o m LOG.info(String.format("Collect %d events from AWS SQS.", messageList.size())); ArrayList<DeleteMessageBatchRequestEntry> entries = new ArrayList<>(); for (Message message : messageList) { try { boolean hasProcessed = processMessage(message); if (hasProcessed) { DeleteMessageBatchRequestEntry entry = new DeleteMessageBatchRequestEntry(); entry.setId(message.getMessageId()); entry.setReceiptHandle(message.getReceiptHandle()); entries.add(entry); } } catch (Exception ex) { LOG.error("Failed to process SQS message:", message, ex); } } if (!entries.isEmpty()) { DeleteMessageBatchRequest deleteMessageBatchRequest = new DeleteMessageBatchRequest(); deleteMessageBatchRequest.setEntries(entries); LOG.debug(String.format("Successful process %d messages, deleting them from SQS.", entries.size())); sqsClient.deleteMessageBatch(deleteMessageBatchRequest); } } }
From source file:com.rodosaenz.samples.aws.sqs.AwsSqsSimpleExample.java
License:Open Source License
public static void main(String[] args) throws Exception { /*/* ww w. j ava 2 s. c o m*/ * The ProfileCredentialsProvider will return your [default] * credential profile by reading from the credentials file located at * (~/.aws/credentials). */ AWSCredentials credentials = null; try { credentials = new ProfileCredentialsProvider().getCredentials(); } catch (Exception e) { throw new AmazonClientException("Cannot load the credentials from the credential profiles file. " + "Please make sure that your credentials file is at the correct " + "location (~/.aws/credentials), and is in valid format.", e); } AmazonSQS sqs = new AmazonSQSClient(credentials); Region usWest2 = Region.getRegion(Regions.US_EAST_1); sqs.setRegion(usWest2); System.out.println("==========================================="); System.out.println("Getting Started with Amazon SQS"); System.out.println("===========================================\n"); String queue_name = "com-rodosaenz-examples-aws-sqs"; try { // Create a queue System.out.println("Creating a new SQS queue called " + queue_name + ".\n"); CreateQueueRequest createQueueRequest = new CreateQueueRequest(queue_name); String myQueueUrl = sqs.createQueue(createQueueRequest).getQueueUrl(); // List queues System.out.println("Listing all queues in your account.\n"); for (String queueUrl : sqs.listQueues().getQueueUrls()) { System.out.println(" QueueUrl: " + queueUrl); } System.out.println(); // Send a message System.out.println("Sending a message to " + queue_name + ".\n"); sqs.sendMessage(new SendMessageRequest(myQueueUrl, "This is my message text.")); // Receive messages System.out.println("Receiving messages from MyQueue.\n"); ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(myQueueUrl); receiveMessageRequest.setMaxNumberOfMessages(1); List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages(); for (Message message : messages) { System.out.println(" Message"); System.out.println(" MessageId: " + message.getMessageId()); System.out.println(" ReceiptHandle: " + message.getReceiptHandle()); System.out.println(" MD5OfBody: " + message.getMD5OfBody()); System.out.println(" Body: " + message.getBody()); for (Entry<String, String> entry : message.getAttributes().entrySet()) { System.out.println(" Attribute"); System.out.println(" Name: " + entry.getKey()); System.out.println(" Value: " + entry.getValue()); } } System.out.println(); // Delete a message System.out.println("Deleting a message.\n"); String messageReceiptHandle = messages.get(0).getReceiptHandle(); sqs.deleteMessage(new DeleteMessageRequest(myQueueUrl, messageReceiptHandle)); //Get attributes GetQueueAttributesRequest request = new GetQueueAttributesRequest(myQueueUrl).withAttributeNames("All"); final Map<String, String> attributes = sqs.getQueueAttributes(request).getAttributes(); System.out.println(" Policy: " + attributes.get("Policy")); System.out.println(" MessageRetentionPeriod: " + attributes.get("MessageRetentionPeriod")); System.out.println(" MaximumMessageSize: " + attributes.get("MaximumMessageSize")); System.out.println(" CreatedTimestamp: " + attributes.get("CreatedTimestamp")); System.out.println(" VisibilityTimeout: " + attributes.get("VisibilityTimeout")); System.out.println(" QueueArn: " + attributes.get("QueueArn")); System.out.println(" ApproximateNumberOfMessages: " + attributes.get("ApproximateNumberOfMessages")); System.out.println(" ApproximateNumberOfMessagesNotVisible: " + attributes.get("ApproximateNumberOfMessagesNotVisible")); System.out.println(" DelaySeconds: " + attributes.get("DelaySeconds")); // Delete a queue System.out.println("Deleting the test queue.\n"); sqs.deleteQueue(new DeleteQueueRequest(myQueueUrl)); } catch (AmazonServiceException ase) { System.out.println("Caught an AmazonServiceException, which means your request made it " + "to Amazon SQS, but was rejected with an error response for some reason."); System.out.println("Error Message: " + ase.getMessage()); System.out.println("HTTP Status Code: " + ase.getStatusCode()); System.out.println("AWS Error Code: " + ase.getErrorCode()); System.out.println("Error Type: " + ase.getErrorType()); System.out.println("Request ID: " + ase.getRequestId()); } catch (AmazonClientException ace) { System.out.println("Caught an AmazonClientException, which means the client encountered " + "a serious internal problem while trying to communicate with SQS, such as not " + "being able to access the network."); System.out.println("Error Message: " + ace.getMessage()); } }
From source file:com.sag.tn.storm.stormmaven.spoutsources.AWSSQSSpoutSource.java
License:Open Source License
@Override public List<TuplePair<VTDNav, String>> fetch() throws IOException { List<TuplePair<VTDNav, String>> list = new ArrayList<>(); /*/*from ww w .j ava 2 s .com*/ * get duplicate check - ignore as it needs a centralized cache process delete */ try { List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages(); for (Message message : messages) { this.vg.setDoc(message.getBody().getBytes()); this.vg.parse(true); list.add(new TuplePair<>(vg.getNav(), message.getMessageId())); sqs.deleteMessage(new DeleteMessageRequest(this.sqsQueueURL, message.getReceiptHandle())); this.vg.clear(); } } catch (Exception e) { e.printStackTrace(); } return list; }