AWS services or capabilities described in AWS Documentation may vary by region/location. Click Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.
Because the batch request can result in a combination of successful and unsuccessful actions, you should check for batch errors even when the call returns an HTTP status code of 200.
param.nnotation. Values of
nare integers starting from 1. For example, a parameter list with two elements looks like this:
&Attribute.1=this
&Attribute.2=that
Namespace: Amazon.SQS
Assembly: AWSSDK.dll
Version: 0.0.3.0
public abstract DeleteMessageBatchResponse DeleteMessageBatch( DeleteMessageBatchRequest request )
Container for the necessary parameters to execute the DeleteMessageBatch service method.
| Exception | Condition |
|---|---|
| BatchEntryIdsNotDistinctException | Two or more batch entries have the same Id in the request. |
| EmptyBatchRequestException | Batch request does not contain an entry. |
| InvalidBatchEntryIdException | The Id of a batch entry in a batch request does not abide by the specification. |
| TooManyEntriesInBatchRequestException | Batch request contains more number of entries than permissible. |
This example shows how to delete messages in batch.
var client = new AmazonSQSClient();
var request = new ReceiveMessageRequest
{
AttributeNames = new List<string>() { "All" },
MaxNumberOfMessages = 5,
QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue",
VisibilityTimeout = (int)TimeSpan.FromMinutes(10).TotalSeconds,
WaitTimeSeconds = (int)TimeSpan.FromSeconds(5).TotalSeconds
};
var response = client.ReceiveMessage(request);
var batchEntries = new List<DeleteMessageBatchRequestEntry>();
if (response.Messages.Count > 0)
{
foreach (var message in response.Messages)
{
var batchEntry = new DeleteMessageBatchRequestEntry
{
Id = message.MessageId,
ReceiptHandle = message.ReceiptHandle
};
batchEntries.Add(batchEntry);
}
var delRequest = new DeleteMessageBatchRequest
{
Entries = batchEntries,
QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue"
};
var delResponse = client.DeleteMessageBatch(delRequest);
if (delResponse.Failed.Count > 0)
{
Console.WriteLine("Failed deletions:");
foreach (var failure in delResponse.Failed)
{
Console.WriteLine(" For ID '" + failure.Id + "': ");
Console.WriteLine(" Code = " + failure.Code);
Console.WriteLine(" Message = " + failure.Message);
Console.WriteLine(" Sender's fault? = " + failure.SenderFault);
}
}
if (delResponse.Successful.Count > 0)
{
Console.WriteLine("Successful deletions:");
foreach (var success in delResponse.Successful)
{
Console.WriteLine(" ID '" + success.Id + "'");
}
}
}
else
{
Console.WriteLine("No messages to delete.");
}
.NET Framework:
Supported in: 4.5, 4.0, 3.5