List of usage examples for com.amazonaws.services.sqs AmazonSQSClientBuilder defaultClient
public static AmazonSQS defaultClient()
From source file:aws.example.sqs.DeadLetterQueues.java
License:Open Source License
public static void main(String[] args) { if (args.length != 2) { System.out.println("Usage: DeadLetterQueues <src_queue_name> <dl_queue_name>"); System.exit(1);//ww w. j ava 2 s. c om } String src_queue_name = args[0]; String dl_queue_name = args[1]; final AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); // Create source queue try { sqs.createQueue(src_queue_name); } catch (AmazonSQSException e) { if (!e.getErrorCode().equals("QueueAlreadyExists")) { throw e; } } // Create dead-letter queue try { sqs.createQueue(dl_queue_name); } catch (AmazonSQSException e) { if (!e.getErrorCode().equals("QueueAlreadyExists")) { throw e; } } // Get dead-letter queue ARN String dl_queue_url = sqs.getQueueUrl(dl_queue_name).getQueueUrl(); GetQueueAttributesResult queue_attrs = sqs .getQueueAttributes(new GetQueueAttributesRequest(dl_queue_url).withAttributeNames("QueueArn")); String dl_queue_arn = queue_attrs.getAttributes().get("QueueArn"); // Set dead letter queue with redrive policy on source queue. String src_queue_url = sqs.getQueueUrl(src_queue_name).getQueueUrl(); SetQueueAttributesRequest request = new SetQueueAttributesRequest().withQueueUrl(src_queue_url) .addAttributesEntry("RedrivePolicy", "{\"maxReceiveCount\":\"5\", \"deadLetterTargetArn\":\"" + dl_queue_arn + "\"}"); sqs.setQueueAttributes(request); }
From source file:aws.example.sqs.LongPolling.java
License:Open Source License
public static void main(String[] args) { final String USAGE = "To run this example, supply the name of a queue to create and\n" + "queue url of an existing queue.\n\n" + "Ex: LongPolling <unique-queue-name> <existing-queue-url>\n"; if (args.length != 2) { System.out.println(USAGE); System.exit(1);// ww w . j av a2 s. co m } String queue_name = args[0]; String queue_url = args[1]; final AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); // Enable long polling when creating a queue CreateQueueRequest create_request = new CreateQueueRequest().withQueueName(queue_name) .addAttributesEntry("ReceiveMessageWaitTimeSeconds", "20"); try { sqs.createQueue(create_request); } catch (AmazonSQSException e) { if (!e.getErrorCode().equals("QueueAlreadyExists")) { throw e; } } // Enable long polling on an existing queue SetQueueAttributesRequest set_attrs_request = new SetQueueAttributesRequest().withQueueUrl(queue_url) .addAttributesEntry("ReceiveMessageWaitTimeSeconds", "20"); sqs.setQueueAttributes(set_attrs_request); // Enable long polling on a message receipt ReceiveMessageRequest receive_request = new ReceiveMessageRequest().withQueueUrl(queue_url) .withWaitTimeSeconds(20); sqs.receiveMessage(receive_request); }
From source file:aws.example.sqs.SendReceiveMessages.java
License:Open Source License
public static void main(String[] args) { final AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); try {/*from ww w .j av a2 s.c o m*/ CreateQueueResult create_result = sqs.createQueue(QUEUE_NAME); } catch (AmazonSQSException e) { if (!e.getErrorCode().equals("QueueAlreadyExists")) { throw e; } } String queueUrl = sqs.getQueueUrl(QUEUE_NAME).getQueueUrl(); SendMessageRequest send_msg_request = new SendMessageRequest().withQueueUrl(queueUrl) .withMessageBody("hello world").withDelaySeconds(5); sqs.sendMessage(send_msg_request); // Send multiple messages to the queue SendMessageBatchRequest send_batch_request = new SendMessageBatchRequest().withQueueUrl(queueUrl) .withEntries(new SendMessageBatchRequestEntry("msg_1", "Hello from message 1"), new SendMessageBatchRequestEntry("msg_2", "Hello from message 2").withDelaySeconds(10)); sqs.sendMessageBatch(send_batch_request); // receive messages from the queue List<Message> messages = sqs.receiveMessage(queueUrl).getMessages(); // delete messages from the queue for (Message m : messages) { sqs.deleteMessage(queueUrl, m.getReceiptHandle()); } }
From source file:aws.example.sqs.UsingQueues.java
License:Open Source License
public static void main(String[] args) { AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); // Creating a Queue CreateQueueRequest create_request = new CreateQueueRequest(QUEUE_NAME) .addAttributesEntry("DelaySeconds", "60").addAttributesEntry("MessageRetentionPeriod", "86400"); try {/*w w w . j a v a 2 s . co m*/ sqs.createQueue(create_request); } catch (AmazonSQSException e) { if (!e.getErrorCode().equals("QueueAlreadyExists")) { throw e; } } // Get the URL for a queue String queue_url = sqs.getQueueUrl(QUEUE_NAME).getQueueUrl(); // Delete the Queue sqs.deleteQueue(queue_url); sqs.createQueue("Queue1" + new Date().getTime()); sqs.createQueue("Queue2" + new Date().getTime()); sqs.createQueue("MyQueue" + new Date().getTime()); // List your queues ListQueuesResult lq_result = sqs.listQueues(); System.out.println("Your SQS Queue URLs:"); for (String url : lq_result.getQueueUrls()) { System.out.println(url); } // List queues with filters String name_prefix = "Queue"; lq_result = sqs.listQueues(new ListQueuesRequest(name_prefix)); System.out.println("Queue URLs with prefix: " + name_prefix); for (String url : lq_result.getQueueUrls()) { System.out.println(url); } }
From source file:aws.example.sqs.VisibilityTimeout.java
License:Open Source License
public static void changeMessageVisibilitySingle(String queue_url, int timeout) { AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); // Get the receipt handle for the first message in the queue. String receipt = sqs.receiveMessage(queue_url).getMessages().get(0).getReceiptHandle(); sqs.changeMessageVisibility(queue_url, receipt, timeout); }
From source file:aws.example.sqs.VisibilityTimeout.java
License:Open Source License
public static void changeMessageVisibilityMultiple(String queue_url, int timeout) { AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); List<ChangeMessageVisibilityBatchRequestEntry> entries = new ArrayList<ChangeMessageVisibilityBatchRequestEntry>(); entries.add(new ChangeMessageVisibilityBatchRequestEntry("unique_id_msg1", sqs.receiveMessage(queue_url).getMessages().get(0).getReceiptHandle()) .withVisibilityTimeout(timeout)); entries.add(new ChangeMessageVisibilityBatchRequestEntry("unique_id_msg2", sqs.receiveMessage(queue_url).getMessages().get(0).getReceiptHandle()) .withVisibilityTimeout(timeout + 200)); sqs.changeMessageVisibilityBatch(queue_url, entries); }
From source file:aws.example.sqs.VisibilityTimeout.java
License:Open Source License
public static void main(String[] args) { final String queue_name = "testQueue" + new Date().getTime(); AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); // first, create a queue (unless it exists already) try {//from w w w .j a va 2 s . com CreateQueueResult cq_result = sqs.createQueue(queue_name); } catch (AmazonSQSException e) { if (!e.getErrorCode().equals("QueueAlreadyExists")) { throw e; } } final String queue_url = sqs.getQueueUrl(queue_name).getQueueUrl(); // Send some messages to the queue for (int i = 0; i < 20; i++) { sqs.sendMessage(queue_url, "This is message " + i); } // change visibility timeout (single) changeMessageVisibilitySingle(queue_url, 3600); // change visibility timeout (multiple) changeMessageVisibilityMultiple(queue_url, 2000); }
From source file:com.vitembp.embedded.interfaces.AmazonSQSControl.java
License:Open Source License
/** * Initializes a new instance of the AmazonSQSControl class. * @param queueName The name of the queue to connect to. * @param msgParser The parser that handles messages. * @param threads The number of message handling threads. *///www . j a va 2 s .c om public AmazonSQSControl(String queueName, Function<String, String> msgParser, int threads) { // save thread count this.threadCount = threads; // create client to use to communicate with sqs this.sqsClient = AmazonSQSClientBuilder.defaultClient(); // save the function which parses messages this.messageParser = msgParser; // save the name of the queue for this device this.queueName = queueName; // build DynamoDB client with default credentials this.client = AmazonDynamoDBClient.builder().build(); }
From source file:org.duracloud.common.queue.aws.SQSTaskQueue.java
License:Apache License
/** * Creates a SQSTaskQueue that serves as a handle to interacting with a * remote Amazon SQS Queue./*from ww w . ja v a 2s . c om*/ * The AmazonSQSClient will search for Amazon credentials on the system as * described here: * http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html * * Moreover, it is possible to set the region to use via the AWS_REGION * environment variable or one of the other methods described here: * http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/java-dg-region-selection.html */ public SQSTaskQueue(String queueName) { this(AmazonSQSClientBuilder.defaultClient(), queueName); }
From source file:org.duracloud.common.sns.config.SnsSubscriptionManagerConfig.java
License:Apache License
@Bean(destroyMethod = "disconnect", initMethod = "connect") public SnsSubscriptionManager snsSubscriptionManager(GlobalPropertiesRepo globalPropertiesRepo, final List<AccountComponentCache<?>> componentCaches, String appName) { try {// w w w. j a v a 2s.c om GlobalProperties props = globalPropertiesRepo.findAll().get(0); String queueName = "node-queue-" + appName + "-" + Inet4Address.getLocalHost().getHostName().replace(".", "_"); SnsSubscriptionManager subscriptionManager = new SnsSubscriptionManager( AmazonSQSClientBuilder.defaultClient(), AmazonSNSClientBuilder.defaultClient(), props.getInstanceNotificationTopicArn(), queueName); subscriptionManager.addListener(new MessageListener() { @Override public void onMessage(Message message) { log.info("message received: " + message); log.debug("message body: " + message.getBody()); JsonFactory factory = new JsonFactory(); ObjectMapper mapper = new ObjectMapper(factory); TypeReference<HashMap<String, String>> typeRef = new TypeReference<HashMap<String, String>>() { }; String body = message.getBody(); try { Map<String, String> map = mapper.readValue(body, typeRef); AccountChangeEvent event = AccountChangeEvent.deserialize(map.get("Message")); for (AccountComponentCache<?> cache : componentCaches) { cache.onEvent(event); } } catch (IOException e) { log.warn("unable to dispatch message: " + message + " : " + e.getMessage(), e); } } }); return subscriptionManager; } catch (UnknownHostException e) { throw new DuraCloudRuntimeException(e); } }