public void Run(SiteForParsing siteForParsing) { try { Log = LogManager.GetCurrentClassLogger(); var site = new Site { Url = siteForParsing.Url, ExternalLinks = siteForParsing.ExternalLinks, Depth = siteForParsing.Depth, LastUpdate = DateTime.Now }; SaveSiteToDb(site); Log.Info($"Run parsing: {site.Url}"); var time = new Stopwatch(); time.Start(); IsParsing = true; _parser.Start(site, siteForParsing.NumberOfThreads); var save = new Task(SavePagesToDb); save.Start(); Task.WaitAll(_parser.Tasks); IsParsing = false; Log.Info("Parsing Complete"); Task.WaitAll(save); time.Stop(); Log.Info($"Total time: {time.ElapsedMilliseconds}"); Console.WriteLine($@"Total Pages: {_parser.MainSite.Pages.Count} Time: {time.ElapsedMilliseconds}"); if (!siteForParsing.Tree) { return; } _treeBuilder.Build(_parser.MainSite); Log.Info("Tree was successfully builded"); } catch (Exception e) { Log.Error(e.Message); } }
public void AddSiteForParsing(SiteForParsing site) { _actionBlock.Post(site); }