Beispiel #1
0
        public static void PurgeAllMessages(IEnumerable <AzureMessageQueue> monitorQueues)
        {
            List <Task> tasks = new List <Task>();

            foreach (var queue in monitorQueues)
            {
                if (AzureServiceBusReceiver.GetAzureQueueCount(queue.Queue.Name) > 0)
                {
                    tasks.Add(Task.Factory.StartNew(() => {
                        try {
                            _log.Trace("Purging Queue {0}...".With(queue.Queue.Name));
                            queue.Purge();
                            _log.Trace("Finished Purging Queue " + queue.Queue.Name);
                        } catch (Exception ex) {
                            _log.Error("Error when Purgin queue {0}, {1}".With(queue.Queue.Name, ex));
                        }
                    }));
                    Thread.Sleep(500);
                }


                if (tasks.Count > 0 && (tasks.Count % 15) == 0)
                {
                    Task.WaitAll(tasks.ToArray());
                    tasks.Clear();
                }
            }

            if (tasks.Count > 0)
            {
                Task.WaitAll(tasks.ToArray());
            }
        }
Beispiel #2
0
 public Model.QueueFetchResult GetUnprocessedMessages(QueueFetchUnprocessedMessagesRequest req)
 {
     return(AzureServiceBusReceiver.GetUnprocessedMessages(req, _monitorQueues, x => PrepareQueueItemForAdd(x)));
 }