static void Main(string[] args) { Console.WriteLine($"Host: {Host}"); Console.WriteLine($"AccessKey: {AccessKey}"); Console.WriteLine($"AccessSecret: {AccessSecret}"); var Queue = MNS.Configure(Host, AccessKey, AccessSecret).Queue("aries-test"); while (true) { try { var message = Queue.BatchReceiveMessage(); Console.WriteLine("message [{0}]:", message.Messages.Count); foreach (var msg in message.Messages) { Console.WriteLine("\t{0}: {1}", msg.MessageId, msg.MessageBody); } Console.WriteLine("message processing.."); Thread.Sleep(2000); Console.WriteLine("message processed"); Queue.BatchDeleteMessage(message.Messages.Select(m => m.ReceiptHandle).ToList()); Console.WriteLine("message deleted."); } catch (Exception ex) { if (ex is MessageNotExistException) { continue; } else { Console.WriteLine("{0}\n{1}", ex.Message, ex.StackTrace); } } } }
static void Main(string[] args) { string Host = Environment.GetEnvironmentVariable("ALIYUN_MNS_HOST"); string AccessKey = Environment.GetEnvironmentVariable("ALIYUN_MNS_ACCESSKEY"); string AccessSecret = Environment.GetEnvironmentVariable("ALIYUN_MNS_ACCESSSECRET"); string TestQueue = "aries-test"; Console.WriteLine($"Host: {Host}"); Console.WriteLine($"AccessKey: {AccessKey}"); Console.WriteLine($"AccessSecret: {AccessSecret}"); var mns = MNS.Configure(Host, AccessKey, AccessSecret); IQueue queue = mns.Queue(TestQueue); if (mns.ListQueue().Items.Where(q => q.QueueURL.Contains(TestQueue)).Count() > 0) { queue.DeleteQueue(); } queue.CreateQueue(); for (int i = 0; i < 8; i++) { var message = args.Length >= 1 ? args[0] + i : "this is test message #" + i; var result = queue.SendMessage(message); Console.WriteLine($"SEND: [{result.MessageId}] - {message}"); } var messages = new BatchSendMessageApiParameter() { Messages = Enumerable.Range(0, 11).Select(i => new SendMessageApiParameter() { MessageBody = Convert.ToBase64String(Encoding.UTF8.GetBytes($"batch test #{i}")) }).ToList() }; queue.BatchSendMessage(messages); Console.WriteLine($"BATCH SEND: {messages.Messages.Count} messages"); Thread.Sleep(2000); var peakedMessage = queue.PeekMessage(); Console.WriteLine($"PEAK: [{peakedMessage.ReceiptHandle}] - {peakedMessage.MessageBody}"); var batchPeakedMessages = queue.BatchPeekMessage(10); foreach (var message in batchPeakedMessages.Messages) { Console.WriteLine($"BATCH PEAK: {message.MessageBody}"); } while (true) { try { var message = queue.ReceiveMessage(); Console.WriteLine($"Single Receive: {message.MessageBody}"); Console.WriteLine("Changing visible time for this message."); var changeResult = queue.ChangeMessageVisibility(message.ReceiptHandle, 600); Console.WriteLine($"NEXT VISIBLE: {changeResult.NextVisibleTime}"); queue.DeleteMessage(message.ReceiptHandle); Console.WriteLine($"DELETE: {message.ReceiptHandle}"); var batchMessages = queue.BatchReceiveMessage(); batchMessages.Messages.ForEach(m => Console.WriteLine($"Batch Receive: {m.MessageBody}")); queue.BatchDeleteMessage(batchMessages.Messages.Select(m => m.ReceiptHandle).ToList()); } catch (MessageNotExistException ex) { Console.WriteLine("No messages any more."); break; } } queue.DeleteQueue(); Console.WriteLine("Press any key to continue.."); Console.Read(); }