Example usage for com.amazonaws.services.sqs.model DeleteMessageBatchResult getSuccessful

List of usage examples for com.amazonaws.services.sqs.model DeleteMessageBatchResult getSuccessful

Introduction

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

Prototype


public java.util.List<DeleteMessageBatchResultEntry> getSuccessful() 

Source Link

Document

A list of DeleteMessageBatchResultEntry items.

Usage

From source file:com.plumbee.flume.source.sqs.BatchConsumer.java

License:Apache License

public void flush() {

    // Commit messages to the downstream channel.
    LOGGER.debug("Flushing, transaction size: {}", batchDeleteRequestEntries.size());
    if (batchEventList.size() > 0) {
        channelProcessor.processEventBatch(batchEventList);
        batchEventList.clear();//from  w w w . j  av a  2 s .  c  o  m
    }

    // Request the batch deletion of messages.
    for (List<DeleteMessageBatchRequestEntry> partition : Lists.partition(batchDeleteRequestEntries,
            queueDeleteBatchSize)) {
        sourceCounter.incrementBatchDeleteRequestAttemptCount();
        deleteMessageBatchRequest.setEntries(partition);
        DeleteMessageBatchResult batchResult = client.deleteMessageBatch(deleteMessageBatchRequest);
        for (BatchResultErrorEntry errorEntry : batchResult.getFailed()) {
            LOGGER.error("Failed to delete message, {}", errorEntry.toString());
        }
        sourceCounter.incrementBatchDeleteRequestSuccessCount();
        sourceCounter.addToDeleteMessageFailedCount((long) batchResult.getFailed().size());
        sourceCounter.addToDeleteMessageSuccessCount((long) batchResult.getSuccessful().size());
    }
    batchDeleteRequestEntries.clear();
    lastFlush = System.currentTimeMillis();
}

From source file:com.streamsets.pipeline.stage.origin.sqs.SqsConsumerWorkerCallable.java

License:Apache License

private void batchFlushHelper(boolean startNew) throws StageException {
    if (batchContext != null) {
        context.processBatch(batchContext);
        if (!context.isPreview() && commitQueueUrlsToMessages.size() > 0) {
            for (String queueUrl : commitQueueUrlsToMessages.keySet()) {
                DeleteMessageBatchRequest deleteRequest = new DeleteMessageBatchRequest()
                        .withQueueUrl(queueUrl);
                List<DeleteMessageBatchRequestEntry> deleteRequestEntries = new LinkedList<>();
                commitQueueUrlsToMessages.get(queueUrl).forEach(message -> {
                    deleteRequestEntries.add(new DeleteMessageBatchRequestEntry()
                            .withReceiptHandle(message.getReceiptHandle()).withId(message.getMessageId()));
                    // TODO: need to add receiptHandle, and figure out what that is
                });//from ww w . j a va  2s  .c om
                deleteRequest.setEntries(deleteRequestEntries);
                Future<DeleteMessageBatchResult> deleteResultFuture = sqsAsync
                        .deleteMessageBatchAsync(deleteRequest);
                try {
                    DeleteMessageBatchResult deleteResult = deleteResultFuture.get();
                    if (deleteResult.getFailed() != null) {
                        deleteResult.getFailed().forEach(failed -> LOG.error(
                                "Failed to delete message ID {} from queue %s with code {}, sender fault {}",
                                failed.getId(), queueUrl, failed.getCode(), failed.getSenderFault()));
                    }
                    if (LOG.isDebugEnabled()) {
                        if (deleteResult.getSuccessful() != null) {
                            deleteResult.getSuccessful()
                                    .forEach(success -> LOG.debug(
                                            "Successfully deleted message ID {} from queue {}", success.getId(),
                                            queueUrl));
                        }
                    }
                } catch (InterruptedException e) {
                    LOG.error("InterruptedException trying to delete SQS messages with IDs {} in queue {}: {}",
                            getPendingDeleteMessageIds(queueUrl), queueUrl, e.getMessage(), e);
                    Thread.currentThread().interrupt();
                    break;
                } catch (ExecutionException e) {
                    String messageIds = getPendingDeleteMessageIds(queueUrl);
                    LOG.error(Errors.SQS_08.getMessage(), messageIds, queueUrl, e.getMessage(), e);
                    throw new StageException(Errors.SQS_08, messageIds, queueUrl, e.getMessage(), e);
                }
            }
        }
        commitQueueUrlsToMessages.clear();
    }
    batchRecordCount = 0;
    if (startNew) {
        batchContext = context.startBatch();
        lastBatchStartTimestamp = Clock.systemUTC().millis();
    }
}

From source file:io.relution.jenkins.awssqs.net.SQSChannelImpl.java

License:Apache License

@Override
public void deleteMessages(final List<Message> messages) {
    if (messages == null || messages.size() == 0) {
        return;/*from ww  w.j  av a  2 s . c om*/
    }

    final DeleteMessageBatchResult result = this.deleteMessageBatch(messages);

    if (result == null) {
        return;
    }

    final List<?> failed = result.getFailed();
    final List<?> success = result.getSuccessful();
    Log.info("Deleted %d message(s) (%d failed) from %s", success.size(), failed.size(), this.queue);
}

From source file:org.duracloud.common.queue.aws.SQSTaskQueue.java

License:Apache License

@Override
public void deleteTasks(Set<Task> tasks) throws TaskException {
    if (tasks.size() > 10) {
        throw new IllegalArgumentException("task set must contain 10 or fewer tasks");
    }//from w w w  .  j  a  v a  2 s  . c  o m

    try {

        List<DeleteMessageBatchRequestEntry> entries = new ArrayList<>(tasks.size());

        for (Task task : tasks) {
            DeleteMessageBatchRequestEntry entry = new DeleteMessageBatchRequestEntry()
                    .withId(task.getProperty(MsgProp.MSG_ID.name()))
                    .withReceiptHandle(task.getProperty(MsgProp.RECEIPT_HANDLE.name()));
            entries.add(entry);
        }

        DeleteMessageBatchRequest request = new DeleteMessageBatchRequest().withQueueUrl(queueUrl)
                .withEntries(entries);
        DeleteMessageBatchResult result = sqsClient.deleteMessageBatch(request);
        List<BatchResultErrorEntry> failed = result.getFailed();
        if (failed != null && failed.size() > 0) {
            for (BatchResultErrorEntry error : failed) {
                log.info("failed to delete message: " + error);
            }
        }

        for (DeleteMessageBatchResultEntry entry : result.getSuccessful()) {
            log.info("successfully deleted {}", entry);
        }

    } catch (AmazonServiceException se) {
        log.error("failed to batch delete tasks " + tasks + ": " + se.getMessage(), se);

        throw new TaskException(se);
    }

}