public async Task ConsumeAsync(int maxMessages = 5, CancellationToken token = default)
{
Console.WriteLine("\nConsuming messages:");
using (var client = new Amazon.SQS.AmazonSQSClient(accessKey, secretKey, region))
{
var queueUrlResult = await client.GetQueueUrlAsync(queueName, token);
var queueUrl = queueUrlResult.QueueUrl;
while (true)
{
/// Console.WriteLine("Fetching messages:");
var req = new ReceiveMessageRequest(queueUrl);
req.WaitTimeSeconds = 20; // long pooling
req.MaxNumberOfMessages = maxMessages;
var r = await client.ReceiveMessageAsync(req, token);
if (r.Messages.Count > 0)
{
foreach (var m in r.Messages)
{
Console.WriteLine("[" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff") + "] [C] " + m.Body + " | " + m.MessageId);
// ack
await client.DeleteMessageAsync(queueUrl, m.ReceiptHandle);
}
}
}
}
}