Example usage for com.amazonaws.services.sqs.model Message getReceiptHandle

List of usage examples for com.amazonaws.services.sqs.model Message getReceiptHandle

Introduction

In this page you can find the example usage for com.amazonaws.services.sqs.model Message getReceiptHandle.

Prototype


public String getReceiptHandle() 

Source Link

Document

An identifier associated with the act of receiving the message.

Usage

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;
}