Advertisement
Guest User

Untitled

a guest
Jul 2nd, 2015
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. using Microsoft.ServiceBus.Messaging;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5.  
  6. class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. Console.WriteLine("Retrieving Messages...");
  11.  
  12. string connectionString = "<Your Endpoint Here>";
  13. string queueName = "sample-queue";
  14.  
  15. MessagingFactory factory = MessagingFactory.CreateFromConnectionString(connectionString);
  16. MessageReceiver messageReceiver = factory.CreateMessageReceiver(queueName, ReceiveMode.PeekLock);
  17.  
  18. List<long> deferredMessages = new List<long>();
  19.  
  20. Random randomWait = new Random();
  21.  
  22. while (true)
  23. {
  24. try
  25. {
  26. if (deferredMessages.Any())
  27. {
  28. Console.WriteLine("Processing deferred messages...");
  29.  
  30. foreach (long sequenceNumber in deferredMessages)
  31. {
  32. using (BrokeredMessage retrievedMessage = messageReceiver.Receive(sequenceNumber))
  33. {
  34. if (retrievedMessage != null)
  35. {
  36. if (retrievedMessage.Properties.ContainsKey("Say"))
  37. {
  38. Console.WriteLine(retrievedMessage.Properties["Say"].ToString());
  39. }
  40.  
  41. retrievedMessage.Complete();
  42. }
  43. }
  44. }
  45.  
  46. deferredMessages.Clear();
  47. }
  48.  
  49. using (BrokeredMessage originalMessage = messageReceiver.Receive(TimeSpan.FromSeconds(1)))
  50. {
  51. try
  52. {
  53. if (originalMessage != null)
  54. {
  55. // defer some messages
  56. if ((originalMessage.SequenceNumber % 2) == 0)
  57. {
  58. Console.WriteLine("{0} - Deferred", originalMessage.SequenceNumber);
  59. originalMessage.Defer();
  60. deferredMessages.Add(originalMessage.SequenceNumber);
  61. }
  62. else
  63. {
  64. if (originalMessage.Properties.ContainsKey("Say"))
  65. {
  66. Console.WriteLine(originalMessage.Properties["Say"].ToString());
  67. }
  68.  
  69. Console.WriteLine("{0} - Complete", originalMessage.SequenceNumber);
  70. originalMessage.Complete();
  71. }
  72. }
  73. else
  74. {
  75. Console.Write(".");
  76. }
  77. }
  78. catch (Exception ex)
  79. {
  80. Console.WriteLine(ex.ToString());
  81. }
  82. }
  83. }
  84. catch(Exception ex)
  85. {
  86. Console.WriteLine("Exception {0}", ex.Message);
  87. }
  88.  
  89. TimeSpan wait = TimeSpan.FromSeconds(randomWait.Next(1, 10));
  90. System.Threading.Thread.Sleep(wait);
  91. }
  92. }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement