Esempio n. 1
0
        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);
            }
        }
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();
        }