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

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

Introduction

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

Prototype


public java.util.List<BatchResultErrorEntry> getFailed() 

Source Link

Document

A list of BatchResultErrorEntry items.

Usage

From source file:com.netflix.conductor.contribs.queue.sqs.SQSObservableQueue.java

License:Apache License

private List<String> delete(List<Message> messages) {
    if (messages == null || messages.isEmpty()) {
        return null;
    }/*from  w w  w  .  ja v  a 2  s .co m*/

    DeleteMessageBatchRequest batch = new DeleteMessageBatchRequest().withQueueUrl(queueURL);
    List<DeleteMessageBatchRequestEntry> entries = batch.getEntries();

    messages.stream().forEach(m -> entries
            .add(new DeleteMessageBatchRequestEntry().withId(m.getId()).withReceiptHandle(m.getReceipt())));

    DeleteMessageBatchResult result = client.deleteMessageBatch(batch);
    List<String> failures = result.getFailed().stream().map(fm -> fm.getId()).collect(Collectors.toList());
    logger.debug("failed to delete: {}", failures);
    return failures;

}

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 ww .  j a  v  a2  s.  co 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
                });// ww  w  . j a  v  a  2s.  c o m
                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  2s  .  c o  m*/
    }

    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.apache.usergrid.persistence.queue.impl.SNSQueueManagerImpl.java

License:Apache License

@Override
public void commitMessages(final List<LegacyQueueMessage> queueMessages) {
    String url = getReadQueue().getUrl();

    if (logger.isTraceEnabled()) {
        logger.trace("Commit messages {} to queue {}", queueMessages.size(), url);
    }/*from w w  w.j  ava 2  s  .c  o m*/

    List<DeleteMessageBatchRequestEntry> entries = new ArrayList<>();

    for (LegacyQueueMessage message : queueMessages) {
        entries.add(new DeleteMessageBatchRequestEntry(message.getMessageId(), message.getHandle()));
    }

    DeleteMessageBatchRequest request = new DeleteMessageBatchRequest(url, entries);
    DeleteMessageBatchResult result = sqs.deleteMessageBatch(request);

    boolean successful = result.getFailed().size() <= 0;

    if (!successful) {
        for (BatchResultErrorEntry failed : result.getFailed()) {
            logger.error("Commit failed reason: {} messages id: {}", failed.getMessage(), failed.getId());
        }
    }
}

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");
    }/*  w w  w .ja  v a 2 s  .c  om*/

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

}