public void RefreshAllPids() { try { Logger.Info($"开始刷新"); var datas = DalFlashSale.SelectAllSaleActivity() ?? new List <Models.FlashSaleProductModel>(); Logger.Info($"总数:{datas.Count}"); if (!datas.Any()) { return; } var pidCacheHour = 12; // pid缓存小时数 var prefixCacheHour = 12; //前缀缓存小时数 var index = 0; var productInterface = new ProductInterface(Logger); var prefix = (DateTime.Now - DateTime.MinValue).TotalMilliseconds.ToString(); var errorPids = new List <string>(); datas.Select(r => r.Pid).Split(100).Select(p => p.ToList()) .ForEach(pids => { errorPids.AddRange( AsyncHelper.RunSync( () => productInterface.RefreshProductSaleActivityCacheByPidsWithPrefixAsync( pids, prefix, pidCacheHour))); Logger.Info($"第{++index}批刷新完成"); Thread.Sleep(50); }); Logger.Info($"刷新完成,失败数:{errorPids.Count}"); var result = AsyncHelper.RunSync( () => productInterface.ResetPrefixForProductSaleActivityCacheByPidsCacheAsync( prefix, prefixCacheHour)); Logger.Info($"重置缓存-->result:{result}"); } catch (Exception e) { Logger.Error($"刷新异常", e); } }