コード例 #1
0
        /// <summary>
        /// Ftp本地与远程同步删除检查线程
        /// </summary>
        /// <param name="name">Ftp链接</param>
        /// <param name="user">Ftp登录名</param>
        /// <param name="psw">Ftp密码</param>
        /// <returns></returns>
        private static int FtpDelStart(string name, string user, string psw)
        {
            FtpCrawl fc = new FtpCrawl();

            fc.Host = name;
            fc.User = user;
            fc.Psw  = psw;
            log.Info("启动Ftp本地与远程同步删除检查线程" + name);
            Thread tr = new Thread(fc.CheckExist); //启动子线程

            tr.Start();
            while (true)
            {
                if (!fc.flag)                                //监控是否爬虫完成
                {
                    if (fc.QFtpDel.Count != 0)               //若有删除
                    {
                        qsDel.Enqueue(fc.QFtpDel.Dequeue()); //取出加入删除队列
                    }
                    else
                    {
                        lxffin.Add(name);   //完全爬完就加入结束列表并结束线程
                        log.Info("Ftp本地与远程同步删除检查线程结束" + name);
                        return(1);
                    }
                }
                else
                {
                    if (fc.QFtpDel.Count != 0)               //若有删除
                    {
                        qsDel.Enqueue(fc.QFtpDel.Dequeue()); //取出加入删除队列
                    }
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// 启动Ftp本地数据库同步检查线程
        /// </summary>
        /// <returns></returns>
        private static int FtpCheckStart()
        {
            FtpCrawl fc = new FtpCrawl();

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

            tr.Start();
            while (true)
            {
                if (!fc.flag)                  //若未结束
                {
                    if (fc.QFtpChk.Count != 0) //取出加入检查队列
                    {
                        qsChk.Enqueue(fc.QFtpChk.Dequeue());
                    }
                    else
                    {
                        log.Info("Ftp本地数据库同步检查线程结束");
                        return(1);
                    }
                }
                else
                {
                    if (fc.QFtpChk.Count != 0)  //取出加入检查队列
                    {
                        qsChk.Enqueue(fc.QFtpChk.Dequeue());
                    }
                }
            }
        }
コード例 #3
0
        /// <summary>
        /// 启动web爬虫线程
        /// </summary>
        /// <param name="name">Ftp链接</param>
        /// <param name="user">Ftp登录名</param>
        /// <param name="psw">Ftp密码</param>
        /// <returns></returns>
        private static int FtpCrawlStart(string name, string user, string psw)
        {
            FtpCrawl fc = new FtpCrawl();

            fc.Host = name;
            fc.User = user;
            fc.Psw  = psw;
            log.Info("启动Ftp爬虫的线程" + name);
            Thread tr = new Thread(fc.StartCrawl);  //启动子线程

            tr.Start();
            while (true)
            {
                if (!fc.flag)                                              //监控是否爬虫完成
                {
                    if (fc.QFtpAdd.Count != 0 || fc.QFtpUpdate.Count != 0) //若有新增或更新
                    {
                        if (fc.QFtpAdd.Count != 0)
                        {
                            qsAdd.Enqueue(fc.QFtpAdd.Dequeue()); //取出加入新增队列
                        }
                        else
                        {
                            qsUpd.Enqueue(fc.QFtpUpdate.Dequeue()); //取出加入更新队列
                        }
                    }
                    else
                    {
                        lxffin.Add(name);   //完全爬完就加入结束列表并结束线程
                        log.Info("Ftp爬虫的线程结束" + name);
                        return(1);
                    }
                }
                else
                {
                    if (fc.QFtpAdd.Count != 0 || fc.QFtpUpdate.Count != 0)  //若有新增或更新
                    {
                        if (fc.QFtpAdd.Count != 0)
                        {
                            qsAdd.Enqueue(fc.QFtpAdd.Dequeue());    //取出加入新增队列
                        }
                        else
                        {
                            qsUpd.Enqueue(fc.QFtpUpdate.Dequeue()); //取出加入更新队列
                        }
                    }
                }
            }
        }