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