Exemplo n.º 1
0
        public override void Run()
        {
            Trace.TraceInformation("WorkerRole1 is running");


            while (true)
            {
                CloudQueueMessage commandMessage = StorageManager.CommandQueue().GetMessage();
                if (commandMessage != null)
                {
                    switch (commandMessage.AsString)
                    {
                    case "startcrawling":
                        crawler.Start();
                        StorageManager.CommandQueue().DeleteMessage(commandMessage);
                        break;

                    case "stopcrawling":
                        crawler.Stop();
                        StorageManager.CommandQueue().DeleteMessage(commandMessage);
                        break;

                    case "clear":
                        StorageManager.LinkQueue().Clear();
                        StorageManager.CommandQueue().Clear();
                        StorageManager.HTMLQueue().Clear();
                        StorageManager.GetTable().DeleteIfExists();
                        StorageManager.PerformanceCounterTable().DeleteIfExists();
                        StorageManager.ErrorTable().DeleteIfExists();
                        break;

                    default:
                        break;
                    }
                }
                new Task(crawler.GetPerfCounters).Start();
                if (Crawler.state.Equals("Loading"))
                {
                    new Task(crawler.GetPerfCounters).Start();
                    crawler.CrawlUrl();
                }
                else if (crawler.GetState().Equals("Crawling"))
                {
                    new Task(crawler.GetPerfCounters).Start();
                    crawler.GetHTMLData();
                }
            }
        }