public override void Run() { Trace.TraceInformation("WorkerRole1 is running"); Storage.Clear(); Storage.Initiate(); //Storage.linkQueue.AddMessage(new CloudQueueMessage("http://www.cnn.com/sitemaps/sitemap-profile-2018-02.xml")); //Storage.commandQueue.AddMessage(new CloudQueueMessage("Load")); // TODO: Replace the following with your own logic. while (true) { Thread.Sleep(100); Trace.TraceInformation("Working"); CloudQueueMessage commandQueueMessage = Storage.commandQueue.GetMessage(TimeSpan.FromMinutes(5)); //string commandQueueMessage = crawler.GetState(); if (commandQueueMessage != null) { if (commandQueueMessage.AsString == "Load") //commandQueueMessage.AsString == "Load") { crawler.Load(); crawler.Crawling(); crawler.ReadHtml(); } else if (commandQueueMessage.AsString == "Crawl") { crawler.Crawl(); crawler.Crawling(); crawler.ReadHtml(); } else if (commandQueueMessage.AsString == "Idle") { crawler.Idle(); } try { Storage.commandQueue.DeleteMessage(commandQueueMessage); } catch (Exception e) { } } commandQueueMessage = Storage.commandQueue.GetMessage(); } try { this.RunAsync(this.cancellationTokenSource.Token).Wait(); } finally { this.runCompleteEvent.Set(); } }