TaskService.cs 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Threading;
  4. using System.Threading.Tasks;
  5. using System.Linq;
  6. using Microsoft.Extensions.Hosting;
  7. using MySystem;
  8. using MySystem.JobModels;
  9. using Library;
  10. using LitJson;
  11. public class TaskService
  12. {
  13. public readonly static TaskService Instance = new TaskService();
  14. private TaskService()
  15. { }
  16. //要执行的方法
  17. public void DoQueue(int taskid, string date, int kind)
  18. {
  19. TimedTasks task = RedisDbconn.Instance.Get<TimedTasks>("TimedTasks:" + taskid) ?? new TimedTasks();
  20. WebCMSEntities db = new WebCMSEntities();
  21. TaskFinish finish = db.TaskFinish.Add(new TaskFinish()
  22. {
  23. CreateDate = DateTime.Now,
  24. TaskId = task.Id,
  25. }).Entity;
  26. db.SaveChanges();
  27. JobMqMsg job = new JobMqMsg();
  28. job.OrderString = task.OrderJson;
  29. job.Id = task.Id;
  30. job.Note = task.Note;
  31. job.FinishId = finish.Id;
  32. string jobJson = PublicFunction.ObjectToJsonString(job);
  33. finish.TargetData = jobJson;
  34. db.SaveChanges();
  35. db.Dispose();
  36. if (task.OrderJson.StartsWith("Ap:") && task.OrderJson.EndsWith(":Sycn"))
  37. {
  38. }
  39. else if (task.OrderJson.StartsWith("Sp:"))
  40. {
  41. Brand brand = new Brand();
  42. brand.Id = task.BrandId;
  43. TaskSpGetData data = RedisDbconn.Instance.Get<TaskSpGetData>("TaskSpGet:" + task.Id);
  44. List<FieldRelationTable> fields = RedisDbconn.Instance.GetList<FieldRelationTable>("TaskSpGet:Fields:" + task.Id, 1, 1000);
  45. brand.FieldRelation = fields;
  46. brand.TargetTableName = data.TargetTableName;
  47. brand.ReqType = data.ReqType;
  48. brand.Url = data.ReqUrl;
  49. brand.ReqParam = data.ReqParam;
  50. brand.FtpUserName = data.FtpUserName;
  51. brand.FtpPassword = data.FtpPassword;
  52. brand.CheckKey = data.CheckKey;
  53. brand.IsCheck = data.IsCheck == 1 ? true : false;
  54. job.BrandInfo = brand;
  55. job.FinishId = finish.Id;
  56. if (task.OrderJson.EndsWith(":Sycn"))
  57. {
  58. PublicImportDataService.Instance.Test(job, date, kind);
  59. }
  60. else if (task.OrderJson.EndsWith(":SpServer"))
  61. {
  62. }
  63. }
  64. else
  65. {
  66. if (task.OrderJson == "PosTradeStat" || task.OrderJson == "TimerStat" || task.OrderJson == "AlipayPayBack2")
  67. {
  68. }
  69. else
  70. {
  71. }
  72. }
  73. }
  74. public string SycnRedis()
  75. {
  76. WebCMSEntities db = new WebCMSEntities();
  77. List<TimedTasks> tasks = db.TimedTasks.Where(m => m.Status == 1).ToList();
  78. RedisDbconn.Instance.Clear("TimedTasks*");
  79. foreach (TimedTasks task in tasks)
  80. {
  81. RedisDbconn.Instance.AddList("TimedTasks", task.Id);
  82. task.Status = 0;
  83. RedisDbconn.Instance.Set("TimedTasks:" + task.Id, task);
  84. }
  85. List<TimedTasks> sptasks = db.TimedTasks.Where(m => m.SeoTitle == "customize" && m.ServerName == "SpServer" && m.Status == 1).ToList();
  86. RedisDbconn.Instance.Clear("TaskSpGet");
  87. foreach (TimedTasks task in sptasks)
  88. {
  89. task.Status = 0;
  90. RedisDbconn.Instance.Set("TimedTasks:" + task.Id, task);
  91. RedisDbconn.Instance.AddList("TaskSpGet", task.Id);
  92. TaskSpGetData spget = db.TaskSpGetData.FirstOrDefault(m => m.TaskId == task.Id) ?? new TaskSpGetData();
  93. RedisDbconn.Instance.Set("TaskSpGet:" + task.Id, spget);
  94. List<TaskSpFieldRelation> fields = db.TaskSpFieldRelation.Where(m => m.TaskId == task.Id).ToList();
  95. RedisDbconn.Instance.Clear("TaskSpGet:Fields:" + task.Id);
  96. foreach (TaskSpFieldRelation field in fields)
  97. {
  98. RedisDbconn.Instance.AddList("TaskSpGet:Fields:" + task.Id, new FieldRelationTable()
  99. {
  100. SourceFieldName = field.SourceFieldName,
  101. TargetFieldName = field.TargetFieldName,
  102. TargetFieldType = field.TargetFieldType,
  103. });
  104. }
  105. }
  106. db.Dispose();
  107. return "success";
  108. }
  109. public JobMqMsg GetJob(int taskid)
  110. {
  111. TimedTasks task = RedisDbconn.Instance.Get<TimedTasks>("TimedTasks:" + taskid) ?? new TimedTasks();
  112. WebCMSEntities db = new WebCMSEntities();
  113. JobMqMsg job = new JobMqMsg();
  114. job.OrderString = task.OrderJson;
  115. job.Id = task.Id;
  116. job.Note = task.Note;
  117. string jobJson = PublicFunction.ObjectToJsonString(job);
  118. db.SaveChanges();
  119. db.Dispose();
  120. Brand brand = new Brand();
  121. brand.Id = task.BrandId;
  122. TaskSpGetData data = RedisDbconn.Instance.Get<TaskSpGetData>("TaskSpGet:" + task.Id);
  123. List<FieldRelationTable> fields = RedisDbconn.Instance.GetList<FieldRelationTable>("TaskSpGet:Fields:" + task.Id, 1, 1000);
  124. brand.FieldRelation = fields;
  125. brand.TargetTableName = data.TargetTableName;
  126. brand.ReqType = data.ReqType;
  127. brand.Url = data.ReqUrl;
  128. brand.ReqParam = data.ReqParam;
  129. brand.FtpUserName = data.FtpUserName;
  130. brand.FtpPassword = data.FtpPassword;
  131. brand.CheckKey = data.CheckKey;
  132. brand.IsCheck = data.IsCheck == 1 ? true : false;
  133. job.BrandInfo = brand;
  134. return job;
  135. }
  136. }