/// <summary> /// Rejects the specified message. /// </summary> /// <param name="message">The message.</param> /// <param name="requeue">if set to <c>true</c> [requeue].</param> public void Reject(Message message, bool requeue) { if (!message.Header.Bag.ContainsKey("ReceiptHandle")) { return; } var receiptHandle = message.Header.Bag["ReceiptHandle"].ToString(); try { _logger.InfoFormat("SqsMessageConsumer: Rejecting the message {0} with receipt handle {1} on the queue {2} with requeue paramter {3}", message.Id, receiptHandle, _queueUrl, requeue); using (var client = new AmazonSQSClient()) { if (requeue) { client.ChangeMessageVisibility(new ChangeMessageVisibilityRequest(_queueUrl, receiptHandle, 0)); } else { client.DeleteMessage(_queueUrl, receiptHandle); } } _logger.InfoFormat("SqsMessageConsumer: Message {0} with receipt handle {1} on the queue {2} with requeue paramter {3} has been rejected", message.Id, receiptHandle, _queueUrl, requeue); } catch (Exception exception) { _logger.ErrorException("SqsMessageConsumer: Error during rejecting the message {0} with receipt handle {1} on the queue {2}", exception, message.Id, receiptHandle, _queueUrl); throw; } }
public static void SQSChangeMessageVisibility() { #region SQSChangeMessageVisibility var client = new AmazonSQSClient(); var url = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue"; // Receive messages. var rcvRequest = new ReceiveMessageRequest { AttributeNames = new List <string>() { "All" }, QueueUrl = url }; var rcvResponse = client.ReceiveMessage(rcvRequest); // Change visibility timeout for each message. if (rcvResponse.Messages.Count > 0) { foreach (var message in rcvResponse.Messages) { var visRequest = new ChangeMessageVisibilityRequest { QueueUrl = url, ReceiptHandle = message.ReceiptHandle, VisibilityTimeout = (int)TimeSpan.FromMinutes(10).TotalSeconds }; client.ChangeMessageVisibility(visRequest); } } else { Console.WriteLine("No messages to change visibility for."); } #endregion }
public void ChangeMessageVisibility() { AmazonSQSClient client = new AmazonSQSClient(); string queueUrl = "SQS_QUEUE_URL"; var receiveMessageRequest = new ReceiveMessageRequest { AttributeNames = { "SentTimestamp" }, MaxNumberOfMessages = 1, MessageAttributeNames = { "All" }, QueueUrl = queueUrl }; var response = client.ReceiveMessage(receiveMessageRequest); var changeMessageVisibilityRequest = new ChangeMessageVisibilityRequest { QueueUrl = queueUrl, ReceiptHandle = response.Messages[0].ReceiptHandle, VisibilityTimeout = 36000, // 10 hour timeout }; client.ChangeMessageVisibility(changeMessageVisibilityRequest); }