/// <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()); //取出加入删除队列 } } } }
/// <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()); } } } }
/// <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()); //取出加入更新队列 } } } } }