Example usage for com.amazonaws.services.sqs AmazonSQS sendMessageBatch

List of usage examples for com.amazonaws.services.sqs AmazonSQS sendMessageBatch

Introduction

In this page you can find the example usage for com.amazonaws.services.sqs AmazonSQS sendMessageBatch.

Prototype

SendMessageBatchResult sendMessageBatch(SendMessageBatchRequest sendMessageBatchRequest);

Source Link

Document

Delivers up to ten messages to the specified queue.

Usage

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