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_RealTimeJobToDayOne : CommonJob, IJob { public Update_RealTimeJobToDayOne() { logName = "Update_RealTimeJobToDayOne"; } public void Execute(IJobExecutionContext context) { Config = CommonHelper.GetConfigFromDataMap(context.JobDetail.JobDataMap); Click(); } public void Click() { ThreadPool.SetMaxThreads(200, 200); CommonHelper.LogBD("开始Update_RealTimeJobToDayOne", logName); Trace.WriteLine("开始Update_RealTimeJobToDayOne" + DateTime.Now); //new GamesJob().Click(); #region 当天 var query = services.Query(" and StartDateTime>'" + DateTime.Now.AddDays(0).ToString("yyyy-MM-dd") + "' and StartDateTime < '" + DateTime.Now.AddDays(1).AddHours(1).ToString("yyyy-MM-dd") + "'").Where(a => a.StartDateTime < Convert.ToDateTime(DateTime.Now.AddDays(1)) && a.StartDateTime > Convert.ToDateTime(DateTime.Now.ToShortDateString())).ToList(); query = query.Where((x, i) => query.FindIndex(z => z.Id == x.Id) == i).ToList();//Lambda表达式去重 int page = query.Count % 500 == 0 ? query.Count / 500 : query.Count / 500 + 1; for (int i = 0; i < page; i++) { var query1 = query.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 CommonHelper.LogBD("获取完Update_RealTimeJobToDayOne", logName); Trace.WriteLine("获取完Update_RealTimeJobToDayOne" + DateTime.Now); } } }