public IList <LotteryData> RequestNewDatas() { if (_iscrawlingData) { return(null); } _iscrawlingData = true; try { LogDbHelper.LogDebug("正在从" + _dataSite.Name + "爬取数据", GetType().FullName + "=>RequestNewDatas", OperationType.Job); var dataList = CrawNewDatas(); if (dataList.Count <= 0) { LogDbHelper.LogDebug("从" + _dataSite.Name + "爬取数据失败,没有获取到最新的数据", GetType().FullName + "=>RequestNewDatas", OperationType.Job); } else { LogDbHelper.LogDebug("从" + _dataSite.Name + "爬取数据成功,共爬取到" + dataList.Count + "条数据", GetType().FullName + "=>RequestNewDatas", OperationType.Job); } return(dataList); } catch (Exception e) { LogDbHelper.LogError("从" + _dataSite.Name + "爬取数据失败,原因" + e.Message, GetType().FullName + "=>RequestNewDatas", OperationType.Job); return(null); } finally { _iscrawlingData = false; } }
internal void PutThisRegionData(KeyValuePair <int, PeriodNumberInfo> keyValuePair) { if (keyValuePair.Value.ThreeRegionShape == _regionShape) { if (!_keyNumbers.ContainsKey(keyValuePair.Key)) { _keyNumbers.Add(keyValuePair); } else { LogDbHelper.LogDebug("已经存在了当前期" + keyValuePair.Key + "的数据分析", GetType() + "PutThisRegionData"); } } ; }
private void RequestData(DataSite dataSite) { var dataUpdateItem = ObtainDataUpdateItemByReflect(dataSite); if (dataUpdateItem == null) { throw new LSException("获取彩票开始数据数据爬取器失败.=>" + dataSite.Name + dataSite.Id); } var newDataList = dataUpdateItem.RequestNewDatas(); lock (_lockObject) { if (newDataList != null && newDataList.Count > 0) { //必须排序 newDataList = newDataList.OrderBy(p => p.Period).ToList(); foreach (var newData in newDataList) { if (!_lotteryDataAppService.ExsitData(_lotteryDataJob.LotteryType.ToString(), newData.Period)) { var lastLotteryData = _lotteryDataAppService.Insert(newData); _lastPeriod = lastLotteryData.Period; string key = AppUtils.GetLotteryRedisKey(lastLotteryData.LotteryType, LsConstant.LastLotteryDataCacheKey); CacheHelper.SetCache(key, lastLotteryData); // todo:更新彩票分析数据 var lotteryEngine = LotteryEngine.GetLotteryEngine( Utils.StringConvertEnum <LotteryType>(lastLotteryData.LotteryType)); lotteryEngine.CalculateNextLotteryData(); } } LogDbHelper.LogDebug(string.Format("更新彩票{0}开奖数据数据成功,共{1}条数据", _lotteryDataJob.LotteryType, newDataList.Count), GetType().FullName + "=>RequestData", OperationType.Job); _lotteryDataJob.NextLotteryTime = _lotteryUpdateConfig.NextLotteryTime; } } }