Update_RealTimeJobCeshi.cs 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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.ZCLotteryScore;
  16. using FCS.Crawler.ZCLotterySizeIndex;
  17. using FCS.Crawler.ZCLotteryTeam;
  18. using FCS.Interface;
  19. using FCS.Models;
  20. using Quartz;
  21. namespace FCS.Crawler
  22. {
  23. public class Update_RealTimeJobCeshi : CommonJob, IJob
  24. {
  25. public void Execute(IJobExecutionContext context)
  26. {
  27. Config = CommonHelper.GetConfigFromDataMap(context.JobDetail.JobDataMap);
  28. Click();
  29. }
  30. public void Click()
  31. {
  32. ThreadPool.SetMaxThreads(500, 500);
  33. CommonHelper.LogBD("Update_RealTimeJobCeshi" + DateTime.Now);
  34. Trace.WriteLine("Update_RealTimeJobCeshi" + DateTime.Now);
  35. List<int> rlist = new List<int>();
  36. var querygame = services.Query<F_Games>().ToList();
  37. querygame = new List<F_Games>();
  38. //var q1 = querygame.Where((x, i) => querygame.FindIndex(z => z.HomeTeamId == x.HomeTeamId&& z.VisitingTeamId == x.VisitingTeamId && z.StartDateTime == x.StartDateTime && z.GroupingId == x.GroupingId && z.Season == x.Season) == i).ToList();//Lambda表达式去重
  39. //var q1 = querygame.OrderBy(a => a.CreateDateTime).GroupBy(p => new { p.HomeTeamId, p.VisitingTeamId, p.StartDateTime, p.GroupingId }).Select(g => g.Last()).ToList();
  40. //foreach (var item in querygame)
  41. //{
  42. // if (q1.Where(a => a.PK == item.PK).ToList().Count > 0)
  43. // {
  44. // continue;
  45. // }
  46. // else
  47. // {
  48. // rlist.Add(item.PK);
  49. // }
  50. //}
  51. //if (rlist.Count > 0)
  52. //{
  53. // int pg = rlist.Count % 10000 == 0 ? rlist.Count / 10000 : rlist.Count / 10000 + 1;
  54. // for (int i = 0; i < pg; i++)
  55. // {
  56. // var listint1 = rlist.Skip(i * 10000).Take(10000).ToList();
  57. // services.Delete<F_Games>(" and PK in (" + string.Join(",", listint1) + ")");
  58. // }
  59. //}
  60. rlist = new List<int>();
  61. var q2 = querygame.OrderBy(a => a.CreateDateTime).GroupBy(p => new { p.HomeTeamId, p.VisitingTeamId,p.GroupingId }).Select(g => g.Last()).ToList();
  62. foreach (var item in q2)
  63. {
  64. if (querygame.Where(a => a.HomeTeamId == item.HomeTeamId && a.VisitingTeamId == item.VisitingTeamId && a.GroupingId == item.GroupingId).ToList().Count > 1)
  65. {
  66. var q3 = querygame.Where(a => a.HomeTeamId == item.HomeTeamId && a.VisitingTeamId == item.VisitingTeamId && a.GroupingId == item.GroupingId).ToList();
  67. foreach (var item1 in q3)
  68. {
  69. if (item1.PK != item.PK)
  70. {
  71. rlist.Add(item.PK);
  72. }
  73. }
  74. }
  75. }
  76. if (rlist.Count > 0)
  77. {
  78. int pg = rlist.Count % 10000 == 0 ? rlist.Count / 10000 : rlist.Count / 10000 + 1;
  79. for (int i = 0; i < pg; i++)
  80. {
  81. var listint1 = rlist.Skip(i * 10000).Take(10000).ToList();
  82. services.Delete<F_Games>(" and PK in (" + string.Join(",", listint1) + ")");
  83. }
  84. }
  85. CommonHelper.LogBD("获取完Update_RealTimeJobToDay10" + DateTime.Now);
  86. Trace.WriteLine("获取完Update_RealTimeJobToDay10" + DateTime.Now);
  87. }
  88. }
  89. }