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.dateofrock.aws.simplesqs.JobConsumer.java
License:Apache License
public void consume(Class<? extends AbstractJobTicket> clazz) { String queueName = this.reflector.findQueueName(clazz); GetQueueUrlResult result = this.sqs.getQueueUrl(new GetQueueUrlRequest(queueName)); String queueUrl = result.getQueueUrl(); ReceiveMessageResult receivedMessage = this.sqs.receiveMessage( new ReceiveMessageRequest(queueUrl).withMaxNumberOfMessages(this.maxNumberOfMessages)); List<Message> messages = receivedMessage.getMessages(); for (Message message : messages) { String jobId = message.getBody(); String receiptHandle = message.getReceiptHandle(); AbstractJobTicket jobTicket = null; try {// w w w.j a va 2s . c o m jobTicket = this.sdbMapper.load(clazz, jobId); jobTicket.receiptHandle = receiptHandle; } catch (SimpleDBMapperNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); // FIXME Message?? this.sqs.deleteMessage(new DeleteMessageRequest(queueUrl, receiptHandle)); return; } Status currentStatus = Status.fromJobTicket(jobTicket); switch (currentStatus) { case WAITING: jobTicket.status = Status.IN_PROGRESS.getValue(); jobTicket.updatedAt = new Date(); this.sdbMapper.save(jobTicket); try { // jobTicket.execute(); } catch (Exception e) { // StackTrace? StringWriter writer = new StringWriter(); PrintWriter printWriter = new PrintWriter(writer); e.printStackTrace(printWriter); printWriter.flush(); printWriter.close(); try { writer.close(); } catch (IOException ignore) { } jobTicket.exceptionStackTrace = writer.toString(); jobTicket.status = Status.FAILURE.getValue(); jobTicket.updatedAt = new Date(); this.sdbMapper.save(jobTicket); break; } jobTicket.status = Status.SUCCESS.getValue(); jobTicket.updatedAt = new Date(); this.sdbMapper.save(jobTicket); break; case IN_PROGRESS: jobTicket.processIfInProgress(); break; case SUCCESS: break; case FAILURE: break; default: break; } } }
From source file:com.dxc.temp.SimpleQueueServiceSample.java
License:Open Source License
public static void main(String[] args) throws Exception { BasicConfigurator.configure();/*w w w. j a v a 2 s.co 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); } System.out.println(String.format("Found AWSAccessKeyId: %s", credentials.getAWSAccessKeyId())); System.out.println(String.format("Found AWSAccessSecretKey: %s", credentials.getAWSSecretKey())); AmazonSQS sqs = new AmazonSQSClient(credentials); Region usEast1 = Region.getRegion(Regions.US_EAST_1); sqs.setRegion(usEast1); 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, "Message body 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 messageReceiptHandle = messages.get(0).getReceiptHandle(); // sqs.deleteMessage(new DeleteMessageRequest(myQueueUrl, messageReceiptHandle)); // Delete a queue // You must wait 60 seconds after deleting a queue before you can create another with the same name // 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.easarrive.aws.plugins.common.service.impl.SQSService.java
License:Open Source License
/** * {@inheritDoc}// www . j a va 2 s . co m */ @Override public DeleteMessageResult deleteMessage(AmazonSQS client, String queueUrl, Message message) { DeleteMessageRequest deleteMessageRequest = new DeleteMessageRequest(queueUrl, message.getReceiptHandle()); // deleteMessageRequest.withQueueUrl(queueUrl).withReceiptHandle(message.getReceiptHandle()); DeleteMessageResult result = client.deleteMessage(deleteMessageRequest); return result; }
From source file:com.erudika.para.queue.AWSQueueUtils.java
License:Apache License
/** * Pulls a number of messages from an SQS queue. * @param queueURL the URL of the SQS queue * @param numberOfMessages the number of messages to pull * @return a list of messages//from ww w .j av a2s . c o m */ public static List<String> pullMessages(String queueURL, int numberOfMessages) { List<String> messages = new ArrayList<String>(); if (!StringUtils.isBlank(queueURL)) { try { int batchSteps = 1; int maxForBatch = numberOfMessages; if ((numberOfMessages > MAX_MESSAGES)) { batchSteps = (numberOfMessages / MAX_MESSAGES) + ((numberOfMessages % MAX_MESSAGES > 0) ? 1 : 0); maxForBatch = MAX_MESSAGES; } for (int i = 0; i < batchSteps; i++) { List<Message> list = getClient().receiveMessage(new ReceiveMessageRequest(queueURL) .withMaxNumberOfMessages(maxForBatch).withWaitTimeSeconds(POLLING_INTERVAL)) .getMessages(); if (list != null && !list.isEmpty()) { List<DeleteMessageBatchRequestEntry> del = new ArrayList<DeleteMessageBatchRequestEntry>(); for (Message msg : list) { messages.add(msg.getBody()); del.add(new DeleteMessageBatchRequestEntry(msg.getMessageId(), msg.getReceiptHandle())); } getClient().deleteMessageBatch(queueURL, del); } } } catch (AmazonServiceException ase) { logException(ase); } catch (AmazonClientException ace) { logger.error("Could not reach SQS. {}", ace.toString()); } } return messages; }
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;/* w w w . ja v a 2 s . co m*/ 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 ww w . j a va 2s . c o m*/ }
From source file:com.github.gregwhitaker.sns.Consumer.java
License:Apache License
@Override public void run() { String queueName = queueArn.substring(queueArn.lastIndexOf(":") + 1); String queueUrl = sqsClient.getQueueUrl(queueName).getQueueUrl(); while (true) { ReceiveMessageResult result = sqsClient.receiveMessage(queueUrl); List<Message> messages = result.getMessages(); if (messages != null && !messages.isEmpty()) { for (Message message : messages) { try { SnsMessage parsedMessage = mapper.readerFor(SnsMessage.class).readValue(message.getBody()); System.out.println(name + ": " + parsedMessage.getMessage()); } catch (IOException e) { e.printStackTrace(); } finally { // Acknowledge the message so that it will not be redelivered sqsClient.deleteMessage(queueUrl, message.getReceiptHandle()); }//from www . j ava2 s. c o m } } else { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }
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);/*from w ww . j av a 2 s .c o 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.kiribuki.queueservice.QueueService.java
License:Open Source License
public String ReceiveDeleteMessage() { Message newmessage = ReceiveMessage(); DeleteMessage(newmessage.getReceiptHandle()); return newmessage.getBody(); }
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 2s . 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; }