public void ExecPageDBData() { DbHelp.Utilities util = new DbHelp.Utilities(); Log.ClsLog clsLog = new Log.ClsLog(); Common.UrlContorl urlContorl = new Common.UrlContorl(); while (true) { Parallel.ForEach <DBEntity>(Program.dbList.GetConsumingEnumerable(), dbEntity => //foreach (DBEntity dbEntity in Program.dbList.GetConsumingEnumerable()) { try { //插入SQL util.ExecNonQuery(dbEntity.myCom, ""); } catch (Exception ex) { urlContorl.SaveUrl(dbEntity.pageContentEntity, ex.ToString()); clsLog.AddLog(DateTime.Now.ToString(), "执行数据失败" + ex.ToString()); clsLog.AddLog(DateTime.Now.ToString(), dbEntity.pageContentEntity.SType + ";" + dbEntity.pageContentEntity.PID + ";" + dbEntity.pageContentEntity.Url + ""); } Interlocked.Decrement(ref Program.clsDBSignal); }); } }
//保存数据 public void SaveUrl(PageContentEntity entity, string ErrorMsg) { CookieFunc cookieFunc = new CookieFunc(); DatUrlEntity urlEntity = new DatUrlEntity(); urlEntity.ID = entity.ID; urlEntity.KeyWord = entity.KeyWord; urlEntity.ProgramName = entity.ProgramName; urlEntity.SpiderDate = entity.SpiderDate; urlEntity.PID = entity.PID; urlEntity.SiteUrl = entity.SiteUrl; urlEntity.SType = entity.SType; urlEntity.SourUrl = entity.SourUrl; urlEntity.Url = entity.Url; urlEntity.UrlType = entity.UrlType; urlEntity.UrlPara = entity.UrlPara; urlEntity.EnCode = entity.EnCode; urlEntity.APara = entity.APara; urlEntity.CookieContent = cookieFunc.GetCookiesStr(entity.CookieContent); urlEntity.AContent = entity.AContent; urlEntity.PConent = entity.PContent; urlEntity.ErrorMsg = ErrorMsg; urlEntity.TrySpiderTimes = entity.TrySpiderTimes + 1; urlEntity.Depth = entity.Depth; urlEntity.SpiderTime = entity.SpiderTime; DbHelp.ClsDB clsdb = new DbHelp.ClsDB(); Analysis.SqlBuild sqlBuild = new Analysis.SqlBuild(); Analysis.SqlPara sqlPara = new Analysis.SqlPara(); clsdb.AddPageDB(entity, sqlBuild.GetHalfBakeInsSql(), sqlPara.GetHalfBakeInsPara(urlEntity)); DbHelp.Utilities util = new DbHelp.Utilities(); }