List of usage examples for com.amazonaws.services.sqs.model DeleteMessageBatchResult getFailed
public java.util.List<BatchResultErrorEntry> getFailed()
A list of BatchResultErrorEntry items.
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); } }