List of usage examples for com.amazonaws.services.sqs AmazonSQS sendMessageBatch
SendMessageBatchResult sendMessageBatch(SendMessageBatchRequest sendMessageBatchRequest);
Delivers up to ten messages to the specified queue.
From source file:aws.example.sqs.SendReceiveMessages.java
License:Open Source License
public static void main(String[] args) { final AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); try {// w w w .j a v a 2 s . c om 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:jp.classmethod.aws.gradle.sqs.AmazonSQSSendMessagesTask.java
License:Apache License
@TaskAction public void sendMessages() { String queueUrl = getQueueUrl(); Stream<String> messages = getMessages(); if (queueUrl == null) { throw new GradleException("Must specify either queueName or queueUrl"); }/*from w w w. j a v a 2s. com*/ if (messages == null) { throw new GradleException("Must provide messages to send to SQS"); } AmazonSQSPluginExtension ext = getProject().getExtensions().getByType(AmazonSQSPluginExtension.class); AmazonSQS sqs = ext.getClient(); final AtomicInteger counter = new AtomicInteger(0); List<SendMessageBatchRequestEntry> messageEntries = messages .map(message -> new SendMessageBatchRequestEntry() .withId("gradle_message_index_" + counter.getAndIncrement()).withMessageBody(message)) .collect(Collectors.toList()); getLogger().info("Sending {} messages to {}", messageEntries.size(), queueUrl); Lists.partition(messageEntries, MAX_MESSAGE_SEND_BATCH_SIZE).parallelStream() .forEach(messagesToSend -> sqs.sendMessageBatch( new SendMessageBatchRequest().withQueueUrl(queueUrl).withEntries(messagesToSend))); }
From source file:shnakkydoodle.queueing.provider.aws.AwsProvider.java
License:Open Source License
/** * Enqueue a bunch of message/*www . ja va 2 s . co m*/ * * @param queuename * @param message */ @Override public void enqueue(String queueName, ArrayList<String> messages) throws Exception { AmazonSQS sqs = new AmazonSQSClient(credentials); sqs.setRegion(Region.EU_Ireland.toAWSRegion()); sqs.createQueue(queueName); CreateQueueRequest createQueueRequest = new CreateQueueRequest(queueName); String myQueueUrl = sqs.createQueue(createQueueRequest).getQueueUrl(); SendMessageBatchRequest batchRequest = new SendMessageBatchRequest(myQueueUrl); batchRequest.setQueueUrl(myQueueUrl); List<SendMessageBatchRequestEntry> entries = new ArrayList<SendMessageBatchRequestEntry>(); for (String message : messages) { entries.add(new SendMessageBatchRequestEntry(UUID.randomUUID().toString(), message)); } batchRequest.setEntries(entries); sqs.sendMessageBatch(batchRequest); }