public async Task RunTest() { Console.WriteLine("About to Create Queue named " + config.QueuePath); await mgt.CreateQueueAsync(new QueueDescription(config.QueuePath) { DefaultMessageTimeToLive = TimeSpan.FromSeconds(5), EnableDeadLetteringOnMessageExpiration = false }, true);; Console.WriteLine("Queue Created. Sending a message"); QueueMessageSender sender = new QueueMessageSender(config.ConnectionString, config.QueuePath); QueueMessageReceiver receiver = new QueueMessageReceiver(config.ConnectionString, config.QueuePath, false); await sender.SendMessage("first message"); Console.WriteLine("Message Sent, Going to receive it now"); string message = await receiver.GetSingleMessage(); Console.WriteLine("Message Received: " + (message ?? "<NULL>")); Console.WriteLine("Sending second message"); await sender.SendMessage("second message"); Console.WriteLine("Message Sent, Going to sleep for 6 seconds"); Thread.Sleep(6000); Console.WriteLine("I'm Back, receiving message"); message = await receiver.GetSingleMessage(); Console.WriteLine("Message Received: " + (message ?? "<NULL>")); Console.WriteLine("Hit Enter to Continue and Delete Queue"); Console.ReadLine(); await mgt.DeleteQueueAsync(config.QueuePath); }
public static async Task DoSendAndReceive(string connectionString, string queueName) { var sender = new QueueMessageSender(connectionString, queueName); var receiver = new QueueMessageReceiver(connectionString, queueName, true); Console.WriteLine($"Queue Length = {receiver.GetActiveQueueLength()}"); await sender.SendMessage("message 1"); await sender.SendMessage("message 2"); await sender.SendMessage("message 3"); await sender.SendMessage("message 4"); await sender.SendMessage("message 5"); await sender.SendMessage("message 6"); Console.WriteLine($"Queue Length = {await receiver.GetActiveQueueLength()}"); int numToFail = 3; int numFailed = 0; receiver.HandleMessageAndReturnIfSuccess += (msg) => { Console.WriteLine($"Message Received: {msg}"); return((++numFailed) >= numToFail); }; receiver.StartReceivingMessages(); Console.WriteLine($"Queue Length = {await receiver.GetActiveQueueLength()}"); System.Threading.Thread.Sleep(1000); Console.WriteLine($"Queue Length = {await receiver.GetActiveQueueLength()}"); Console.WriteLine($"DL Length = {await receiver.GetDeadLetterCount()}"); var dlmsg = await receiver.GetDeadLetterMessage(); Console.WriteLine($"Dead Letter Received: {dlmsg}"); }