public void DistributeWork(HtmlRecord record) { while (crawlerNodes.Count == 0) { ; } CrawlerNode node = crawlerNodes.OrderByDescending(x => x.Value.messageQueue.Count).Last().Value; jobSet[record.id] = node; node.EnqueueHtmlRecord(record); }
protected override void HandleConnection(object socket) { listenerSignal.Set(); Socket handler = (Socket)socket; if (nodeIPAddresses.Contains(handler.LocalEndPoint)) { CrawlerNode node = new CrawlerNode(); node.UpdateReceived += new EventHandler <HtmlRecord>(OnUpdateReceived); node.Start(handler); crawlerNodes.Add((IPEndPoint)handler.LocalEndPoint, node); } else { throw new Exception("Invalid IP attempting to connect"); } }
public void AddCrawlerEvent(CrawlerNode node) { node.UpdateReceived += new EventHandler <HtmlRecord>(UpdateEntry); }