public void ChangeMessageVisibilityBatch() { AmazonSQSClient client = new AmazonSQSClient(); string queueUrl = "SQS_QUEUE_URL"; var receiveMessageRequest = new ReceiveMessageRequest { AttributeNames = { "SentTimestamp" }, MaxNumberOfMessages = 5, MessageAttributeNames = { "All" }, QueueUrl = queueUrl }; var receiveMessageResponse = client.ReceiveMessage(receiveMessageRequest); List <ChangeMessageVisibilityBatchRequestEntry> entries = new List <ChangeMessageVisibilityBatchRequestEntry>(); foreach (var message in receiveMessageResponse.Messages) { entries.Add(new ChangeMessageVisibilityBatchRequestEntry { Id = message.MessageId, ReceiptHandle = message.ReceiptHandle, VisibilityTimeout = 36000, // 10 hour timeout }); } var changeMessageVisibilityBatchResponse = client.ChangeMessageVisibilityBatch(new ChangeMessageVisibilityBatchRequest { QueueUrl = queueUrl, Entries = entries }); Console.WriteLine("Messages successfully changed:"); foreach (var success in changeMessageVisibilityBatchResponse.Successful) { Console.WriteLine(" Message id : {0}", success.Id); } Console.WriteLine("Messages failed to change:"); foreach (var failed in changeMessageVisibilityBatchResponse.Failed) { Console.WriteLine(" Message id : {0}", failed.Id); Console.WriteLine(" Sender's fault? : {0}", failed.SenderFault); } }
public static void SQSChangeMessageVisibilityBatch() { #region SQSChangeMessageVisibilityBatch 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); } } } #endregion Console.ReadLine(); }