using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using FCS.Common; using FCS.Crawler.ZCLotteryAgainst; using FCS.Crawler.ZCLotteryAsianDish; using FCS.Crawler.ZCLotteryGames; using FCS.Crawler.ZCLotteryGrouping; using FCS.Crawler.ZCLotteryIP; using FCS.Crawler.ZCLotteryMatchs; using FCS.Crawler.ZCLotteryScore; using FCS.Crawler.ZCLotterySizeIndex; using FCS.Crawler.ZCLotteryTeam; using FCS.Interface; using FCS.Models; using Quartz; namespace FCS.Crawler { public class Update_RealTimeJobBefore : CommonJob, IJob { public void Execute(IJobExecutionContext context) { Config = CommonHelper.GetConfigFromDataMap(context.JobDetail.JobDataMap); Click(); } public void Click() { ThreadPool.SetMaxThreads(200, 200); CommonHelper.LogBD("开始Update_RealTimeJobBefore" + DateTime.Now); #region 从第十天之前的数据 var querylist1 = services.Query(" AND IsObtain=0 ").Where(a => a.StartDateTime < Convert.ToDateTime(DateTime.Now.AddDays(10).ToShortDateString())).ToList(); querylist1 = querylist1.Where((x, i) => querylist1.FindIndex(z => z.Id == x.Id) == i).ToList();//Lambda表达式去重 int pagelist1 = querylist1.Count % 500 == 0 ? querylist1.Count / 500 : querylist1.Count / 500 + 1; for (int i = 0; i < pagelist1; i++) { var query1 = querylist1.Skip(i * 500).Take(500).ToList(); // list = query; var task1 = new Task(() => { new OddsJob().Click(query1, query1); }); var task2 = new Task(() => { new AsianDishJob().Click(query1, query1); }); var task3 = new Task(() => { new SizeIndexJob().Click(query1, query1); }); task1.Start(); task2.Start(); task3.Start(); Task.WaitAll(task1, task2, task3); List listint = new List(); foreach (var item in query1) { listint.Add(item.Id); } if (listint.Count > 0) services.Update(" and Id in ('" + string.Join("','", listint) + "')"); } #endregion while (true) { if (CommonHelper.ThreadsFinsh()) break; } CommonHelper.LogBD("获取完Update_RealTimeJobBefore" + DateTime.Now); } } }