List of usage examples for com.amazonaws.services.sqs.model Message getReceiptHandle
public String getReceiptHandle()
An identifier associated with the act of receiving the message.
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())); }/* ww w . j a v a 2s . c o m*/ 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.clouddriver.aws.lifecycle.InstanceTerminationLifecycleAgent.java
License:Apache License
private static void deleteMessage(AmazonSQS amazonSQS, String queueUrl, Message message) { try {/* w w w. j a v a 2 s.c om*/ amazonSQS.deleteMessage(queueUrl, message.getReceiptHandle()); } catch (ReceiptHandleIsInvalidException e) { log.warn("Error deleting lifecycle message, reason: {} (receiptHandle: {})", e.getMessage(), message.getReceiptHandle()); } }
From source file:com.netflix.suro.sink.notice.SQSNotice.java
License:Apache License
@Override public String recv() { ReceiveMessageRequest request = new ReceiveMessageRequest().withQueueUrl(queueUrls.get(0)) .withMaxNumberOfMessages(1); try {//w w w. ja v a2 s . com ReceiveMessageResult result = sqsClient.receiveMessage(request); if (!result.getMessages().isEmpty()) { Message msg = result.getMessages().get(0); recvMessageCount.incrementAndGet(); DeleteMessageRequest deleteReq = new DeleteMessageRequest().withQueueUrl(queueUrls.get(0)) .withReceiptHandle(msg.getReceiptHandle()); sqsClient.deleteMessage(deleteReq); if (enableBase64Encoding) { return new String(Base64.decodeBase64(msg.getBody().getBytes()), Charsets.UTF_8); } else { return msg.getBody(); } } else { return ""; } } catch (Exception e) { log.error("Exception while recving SQS notice: " + e.getMessage(), e); return ""; } }
From source file:com.netflix.suro.sink.notice.SQSNotice.java
License:Apache License
@Override public Pair<String, String> peek() { ReceiveMessageRequest request = new ReceiveMessageRequest().withQueueUrl(queueUrls.get(0)) .withMaxNumberOfMessages(1); try {//w ww .j ava2 s . c om ReceiveMessageResult result = sqsClient.receiveMessage(request); if (!result.getMessages().isEmpty()) { Message msg = result.getMessages().get(0); recvMessageCount.incrementAndGet(); if (enableBase64Encoding) { return new Pair<String, String>(msg.getReceiptHandle(), new String(Base64.decodeBase64(msg.getBody().getBytes()), Charsets.UTF_8)); } else { return new Pair<String, String>(msg.getReceiptHandle(), msg.getBody()); } } else { return null; } } catch (Exception e) { log.error("Exception while recving SQS notice: " + e.getMessage(), e); return null; } }
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; }/*from w w w .j a v a2 s . co 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.plumbee.flume.source.sqs.BatchConsumer.java
License:Apache License
public Status process() throws EventDeliveryException { // Check if we've met the criteria to flush events. if (batchDeleteRequestEntries.size() >= batchSize) { flush();//from www . j a v a 2s . c o m } else if ((flushInterval > 0) && ((System.currentTimeMillis() - lastFlush) > flushInterval)) { flush(); } // The number of messages pending insertion to the channels should // always by the same as the number of messages to delete from SQS! assert (batchEventList.size() == batchDeleteRequestEntries.size()); // Determine the maximum number of messages to request from SQS. We // never exceed the capacity of the internal buffers. if ((batchDeleteRequestEntries.size() + queueRecvBatchSize) > batchSize) { receiveMessageRequest.setMaxNumberOfMessages(batchSize - batchDeleteRequestEntries.size()); } else { receiveMessageRequest.setMaxNumberOfMessages(queueRecvBatchSize); } // Retrieve messages. List<Message> messages = client.receiveMessage(receiveMessageRequest).getMessages(); sourceCounter.incrementBatchReceiveRequestAttemptCount(); for (Message message : messages) { // Extract SQS message attributes. long sentTimestamp = Long.parseLong(message.getAttributes().get(SQS_ATTR_SENTTIMESTAMP)); long approximateReceiveCount = Long.parseLong(message.getAttributes().get(SQS_ATTR_APPROXRECEIVECOUNT)); // Update statistics. if (approximateReceiveCount > 1) { sourceCounter.incrementEventReprocessedCount(); } // By default the timestamp of the message is set to the // timestamp in UTC that the message was added to the SQS queue as // opposed to the time it was extracted. Map<String, String> headers = new HashMap<String, String>(); headers.put("timestamp", String.valueOf(sentTimestamp)); batchEventList.add(EventBuilder.withBody(message.getBody(), Charsets.UTF_8, headers)); batchDeleteRequestEntries.add(new DeleteMessageBatchRequestEntry() .withId(Long.toString(batchEventList.size())).withReceiptHandle(message.getReceiptHandle())); } sourceCounter.incrementBatchReceiveRequestSuccessCount(); sourceCounter.addToEventReceivedCount((long) messages.size()); // If the payload was less than 90% of the maximum batch size, // instruct the runner to throttle polling. if (messages.size() < (queueRecvBatchSize * 0.9)) { return Status.BACKOFF; } return Status.READY; }
From source file:com.pocketdealhunter.HotDealsMessagesUtil.java
License:Open Source License
public void deleteMessageFromQueue(Message message) { try {//from www . j a v a 2s. co m DeleteMessageRequest request = new DeleteMessageRequest(this.queueUrl, message.getReceiptHandle()); this.sqsClient.deleteMessage(request); } catch (Exception exception) { System.out.println("Exception = " + exception); } }
From source file:com.rodosaenz.samples.aws.sqs.AwsSqsSimpleExample.java
License:Open Source License
public static void main(String[] args) throws Exception { /*/*from w w w . j a va2 s .c om*/ * 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 www .j a v a 2s .co m*/ * 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; }
From source file:com.sjsu.cmpe281.team06.NovaMiaas.SimpleQueueServiceSample.java
License:Open Source License
public static void main(String[] args) throws Exception { /*//from w ww.j a va2s . co m * This credentials provider implementation loads your AWS credentials * from a properties file at the root of your classpath. * * Important: Be sure to fill in your AWS access credentials in the * AwsCredentials.properties file before you try to run this * sample. * http://aws.amazon.com/security-credentials */ AmazonSQS sqs = new AmazonSQSClient(new ClasspathPropertiesFileCredentialsProvider()); Region usWest1 = Region.getRegion(Regions.US_WEST_1); sqs.setRegion(usWest1); System.out.println("==========================================="); System.out.println("Getting Started with Amazon SQS"); System.out.println("===========================================\n"); try { // Create a queue System.out.println("Creating a new SQS queue called MyQueue.\n"); CreateQueueRequest createQueueRequest = new CreateQueueRequest("MyQueue"); 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 MyQueue.\n"); sqs.sendMessage(new SendMessageRequest(myQueueUrl, "This is my new message text.")); // Receive messages System.out.println("Receiving messages from MyQueue.\n"); ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(myQueueUrl); 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 messageRecieptHandle = messages.get(0).getReceiptHandle(); sqs.deleteMessage(new DeleteMessageRequest(myQueueUrl, messageRecieptHandle)); // 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()); } }