public async Task <IActionResult> PostNewsDocLocalHostAsync([FromHeader] String source, [FromRoute] SiteRoute route, DateTime pushTime, DateTime?errStartTime ) { var response = new Response <Object>(); try { var categories = await _IWebCategoryRepository.Query(a => a.SiteId == route.mark && a.IsEnable == 1, a => a.Sequence).ToListAsync(); var iidn = await _IWebNewsElastic.AddIndexAsync(_IWebNewsElastic.IndexName); List <WebNews> news = null; Expression <Func <WebNews, bool> > predicate; if (errStartTime != null) //如果中途断掉则根据断掉的时间节点重新写入 { predicate = c => c.SiteId == route.mark && c.IsEnable == 1 && (c.PushTime <= pushTime && c.PushTime > errStartTime); } else { predicate = c => c.SiteId == route.mark && c.IsEnable == 1 && c.PushTime <= pushTime; } for (int pageIndex = 1; pageIndex <= 1; pageIndex++) { news = await _IWebNewsRepository.Query(predicate) .ToPager(pageIndex, 100).ToListAsync(); var docs = new List <WebNewsDoc>(); news.ForEach(x => { var category = categories.SingleOrDefault(a => a.CategoryName == x.CategoryName); if (category != null) { docs.Add(GetWebNewsDoc(x)); } }); if (docs.Count > 0) { try { var flag = await _IWebNewsElastic.BatchAddDocumentAsync(_IWebNewsElastic.IndexName, docs); response.Data = docs.Count * pageIndex;//写入es response.Message = docs.LastOrDefault().PushTime.ToString(); response.Code = flag; } catch (Exception ex) { LogHelper.LogError("写入ES错误信息:{0}", ex.Message + ex.StackTrace); } } } } catch (Exception ex) { LogHelper.LogError("db读取错误信息:{0}", ex.Message + ex.StackTrace); } return(response.ToHttpResponse()); }
public async Task <IActionResult> PostWebNewsAsync([FromBody] List <GatherPost> item) { try { var categories = await _IWebCategoryRepository.Query(a => a.IsEnable == 1 && a.SiteId == 1) .ToListAsync(); var entities = new List <WebNews>(); var docs = new List <WebNewsDoc>(); //var d = new WebSite() { Remarks = $"{item[0].content_type}/{item[0].thumbpic}/{item[0].video}" }; //await _IWebSiteRepository.AddAsync(d); //await _IWebSiteRepository.SaveChangesAsync(); item.ForEach(x => { if (!IsExistsTitle(x.title)) { var category = categories.FirstOrDefault(y => y.CategoryName == x.cate_name); if (category != null) { var entity = GetNewsEntity(category, x); var doc = GetNewsDoc(entity); entities.Add(entity); docs.Add(doc); } } }); if (entities.Count > 0) { var resultDB = await _IWebNewsRepository.BatchAddAsync(entities); } if (docs.Count > 0) { var resultES = await _IWebNewsElastic.BatchAddDocumentAsync(_IWebNewsElastic.IndexName, docs); } } catch (Exception ex) { LogHelper.LogError("错误信息:{0}", ex.Message + ex.StackTrace); } return(Ok()); }