Esempio n. 1
0
        public static async Task ChangeMessageVisibilityBatch(IAmazonSQS client, string url)
        {
            // Receive messages.
            var msgRequest = new ReceiveMessageRequest
            {
                AttributeNames = new List <string>()
                {
                    "All"
                },
                QueueUrl = url
            };

            var msgResponse = await client.ReceiveMessageAsync(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 = await client.ChangeMessageVisibilityBatchAsync(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);
                    }
                }
            }
        }
Esempio n. 2
0
        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();
        }