Update_RealTimeJobBefore.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading;
  7. using System.Threading.Tasks;
  8. using FCS.Common;
  9. using FCS.Crawler.ZCLotteryAgainst;
  10. using FCS.Crawler.ZCLotteryAsianDish;
  11. using FCS.Crawler.ZCLotteryGames;
  12. using FCS.Crawler.ZCLotteryGrouping;
  13. using FCS.Crawler.ZCLotteryIP;
  14. using FCS.Crawler.ZCLotteryMatchs;
  15. using FCS.Crawler.ZCLotteryOdds;
  16. using FCS.Crawler.ZCLotteryScore;
  17. using FCS.Crawler.ZCLotterySizeIndex;
  18. using FCS.Crawler.ZCLotteryTeam;
  19. using FCS.Interface;
  20. using FCS.Models;
  21. using Quartz;
  22. namespace FCS.Crawler
  23. {
  24. public class Update_RealTimeJobBefore : CommonJob, IJob
  25. {
  26. public void Execute(IJobExecutionContext context)
  27. {
  28. Config = CommonHelper.GetConfigFromDataMap(context.JobDetail.JobDataMap);
  29. Click();
  30. }
  31. public void Click()
  32. {
  33. ThreadPool.SetMaxThreads(200, 200);
  34. CommonHelper.LogBD("开始Update_RealTimeJobBefore" + DateTime.Now);
  35. #region 从第十天之前的数据
  36. var querylist1 = services.Query<F_Games>(" AND IsObtain=0 ").Where(a => a.StartDateTime < Convert.ToDateTime(DateTime.Now.AddDays(10).ToShortDateString())).ToList();
  37. querylist1 = querylist1.Where((x, i) => querylist1.FindIndex(z => z.Id == x.Id) == i).ToList();//Lambda表达式去重
  38. int pagelist1 = querylist1.Count % 500 == 0 ? querylist1.Count / 500 : querylist1.Count / 500 + 1;
  39. for (int i = 0; i < pagelist1; i++)
  40. {
  41. var query1 = querylist1.Skip(i * 500).Take(500).ToList();
  42. // list = query;
  43. var task1 = new Task(() =>
  44. {
  45. new OddsJob().Click(query1, query1);
  46. });
  47. var task2 = new Task(() =>
  48. {
  49. new AsianDishJob().Click(query1, query1);
  50. });
  51. var task3 = new Task(() =>
  52. {
  53. new SizeIndexJob().Click(query1, query1);
  54. });
  55. task1.Start();
  56. task2.Start();
  57. task3.Start();
  58. Task.WaitAll(task1, task2, task3);
  59. List<string> listint = new List<string>();
  60. foreach (var item in query1)
  61. {
  62. listint.Add(item.Id);
  63. }
  64. if (listint.Count > 0)
  65. services.Update<F_Games>(" and Id in ('" + string.Join("','", listint) + "')");
  66. }
  67. #endregion
  68. while (true)
  69. {
  70. if (CommonHelper.ThreadsFinsh())
  71. break;
  72. }
  73. CommonHelper.LogBD("获取完Update_RealTimeJobBefore" + DateTime.Now);
  74. }
  75. }
  76. }