예제 #1
0
        /// <summary>
        /// 启动web爬虫线程
        /// </summary>
        /// <param name="Link">要爬的链接</param>
        /// <returns></returns>
        private static int WebCrawlStart(string Link)
        {
            WebCrawl wc = new WebCrawl();

            wc.link = Link;
            log.Info("启动web爬虫的线程" + Link);
            Thread tr = new Thread(wc.StartCrawl);  //启动子线程

            tr.Start();
            while (true)
            {
                if (!wc.flag)                                //监控是否爬虫完成
                {
                    if (wc.QWebAdd.Count != 0)               //若有新增
                    {
                        qsAdd.Enqueue(wc.QWebAdd.Dequeue()); //取出加入处理队列
                    }
                    else
                    {
                        lxwfin.Add(Link);   //完全爬完就加入结束列表并结束线程
                        log.Info("web爬虫的线程结束" + Link);
                        return(1);
                    }
                }
                else
                {
                    if (wc.QWebAdd.Count != 0)               //若有新增
                    {
                        qsAdd.Enqueue(wc.QWebAdd.Dequeue()); //取出加入处理队列
                    }
                }
            }
        }
예제 #2
0
        /// <summary>
        /// 启动web本地数据库同步检查线程
        /// </summary>
        /// <returns></returns>
        private static int WebCheckStart()
        {
            WebCrawl wc = new WebCrawl();

            log.Info("启动web本地数据库同步检查线程");
            Thread tr = new Thread(wc.Check); //启动子线程

            tr.Start();
            while (true)
            {
                if (!wc.flag)                  //若未结束
                {
                    if (wc.QWebChk.Count != 0) //取出加入检查队列
                    {
                        qsChk.Enqueue(wc.QWebChk.Dequeue());
                    }
                    else
                    {
                        log.Info("web本地数据库同步检查线程结束");
                        return(1);
                    }
                }
                else
                {
                    if (wc.QWebChk.Count != 0)  //取出加入检查队列
                    {
                        qsChk.Enqueue(wc.QWebChk.Dequeue());
                    }
                }
            }
        }