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.
ChangeMessageVisibilityBatch
action.
param.n
notation. Values of n
are 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: (assembly version)
public abstract ChangeMessageVisibilityBatchResponse ChangeMessageVisibilityBatch( ChangeMessageVisibilityBatchRequest request )
Container for the necessary parameters to execute the ChangeMessageVisibilityBatch 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 change message visibility in batch.
var client = new AmazonSQSClient(); var url = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue"; // Receive messages. var msgRequest = new ReceiveMessageRequest { AttributeNames = new List<string>() { "All" }, QueueUrl = url }; var msgResponse = client.ReceiveMessage(msgRequest); // Change visibility timeout for each message. if (msgResponse.Messages.Count > 0) { var entries = new List<ChangeMessageVisibilityBatchRequestEntry>(); int numMessages = 0; foreach (var message in msgResponse.Messages) { numMessages += 1; var entry = new ChangeMessageVisibilityBatchRequestEntry { Id = "Entry" + numMessages.ToString(), ReceiptHandle = message.ReceiptHandle, VisibilityTimeout = (int)TimeSpan.FromMinutes(10).TotalSeconds }; entries.Add(entry); } var batRequest = new ChangeMessageVisibilityBatchRequest { Entries = entries, QueueUrl = url }; var batResponse = client.ChangeMessageVisibilityBatch(batRequest); Console.WriteLine("Successes: " + batResponse.Successful.Count + ", Failures: " + batResponse.Failed.Count); if (batResponse.Successful.Count > 0) { foreach (var success in batResponse.Successful) { Console.WriteLine(" Success ID " + success.Id); } } if (batResponse.Failed.Count > 0) { foreach (var fail in batResponse.Failed) { Console.WriteLine(" Failure ID " + fail.Id + ":"); Console.WriteLine(" Code: " + fail.Code); Console.WriteLine(" Message: " + fail.Message); Console.WriteLine(" Sender's fault?: " + fail.SenderFault); } } }
.NET Framework:
Supported in: 4.5, 4.0, 3.5