TaskLaunchManager.cs 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. using Cksoft.Unity;
  2. using Cksoft.Unity.Log4NetConfig;
  3. using DllEapBll;
  4. using DllEapDal.OFILM;
  5. using DllUfpDal;
  6. using Hangfire;
  7. using Microsoft.Extensions.Configuration;
  8. using Microsoft.Extensions.Logging;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Linq;
  12. using System.Threading.Tasks;
  13. namespace WebMainFrameForEap.Config
  14. {
  15. /// <summary>
  16. /// 管理服务启动项111
  17. /// </summary>
  18. public class TaskLaunchManager
  19. {
  20. public IConfiguration Configuration { get; set; }
  21. private ILogger myloger = AppConfigurtaionServices.MyLog;
  22. public TaskLaunchManager(IConfiguration configuration)
  23. {
  24. Configuration = configuration;
  25. }
  26. /// <summary>
  27. /// 启动任务
  28. /// </summary>
  29. public void LaunchTask()
  30. {
  31. if (Configuration["CollectEapData"] != null && Convert.ToBoolean(Configuration["CollectEapData"]) == true)
  32. {
  33. this.StartCollectEapAlarmData();
  34. this.StartHandleFailCollection();
  35. }
  36. if (Configuration["DisconnectionNotice"] != null && Convert.ToBoolean(Configuration["DisconnectionNotice"]) == true)
  37. {
  38. this.IPDifferentNotice();
  39. this.AAMaterialNotice();
  40. }
  41. if (Configuration["PushBIData"] != null && Convert.ToBoolean(Configuration["PushBIData"]) == true)
  42. {
  43. // this.StartPushBIStatusData();
  44. this.StartPushBIOutput();
  45. }
  46. if (Convert.ToBoolean(Configuration["SyncEmployee"]) == true)
  47. {
  48. StartSyncEmployee();
  49. }
  50. if (Convert.ToBoolean(Configuration["SyncSample"]))
  51. {
  52. StartSample();
  53. }
  54. if (Configuration["ClearTempView"] == "true")
  55. {
  56. ClearTempViews();
  57. }
  58. if (Configuration["SyncMacLastStatus"] == "true")
  59. {
  60. SyncMacLastStatus();
  61. }
  62. if (Configuration["SyncMacOutPutTime"] == "true")
  63. {
  64. SyncMacOutPutTime();
  65. }
  66. }
  67. private void SyncMacOutPutTime()
  68. {
  69. var cron = $"0 01 0/1 * * ?";
  70. MacOutPutTimeDal dal = new MacOutPutTimeDal();
  71. RecurringJob.AddOrUpdate(() => dal.SetData(), cron, TimeZoneInfo.Local);
  72. }
  73. /// <summary>
  74. /// Sample校验
  75. /// </summary>
  76. private void StartSample()
  77. {
  78. var cron = $"0 0/10 * * * ?";
  79. SamplePara sample = new SamplePara();
  80. RecurringJob.AddOrUpdate(() => sample.Get(), cron);
  81. }
  82. /// <summary>
  83. /// 定时汇总机台报警等数据
  84. /// </summary>
  85. public void StartCollectEapAlarmData()
  86. {
  87. var hour = Convert.ToInt32(Configuration["ColllectTimeSpan:Hour"]);
  88. var minute = Convert.ToInt32(Configuration["ColllectTimeSpan:Minute"]);
  89. // 设置汇总报警等数据定时任务
  90. var cron = $"0 */{minute} {hour} * * ?";
  91. if (hour == 0)
  92. {
  93. cron = $"0 */{minute} * * * ?";
  94. }
  95. //
  96. RecurringJob.AddOrUpdate(() => EapDataCollectBll.CollectEapData(),
  97. cron);
  98. }
  99. /// <summary>
  100. /// BI失败数据处理
  101. /// </summary>
  102. public void StartHandleFailCollection()
  103. {
  104. BackgroundJob.Enqueue(() => EapDataCollectBll.HandleFailCollection());
  105. }
  106. /// <summary>
  107. /// 同步员工账号
  108. /// </summary>
  109. public void StartSyncEmployee()
  110. {
  111. var cron = $"0 0 2 1 * *";
  112. var service = new OfilmRzSyncService();
  113. RecurringJob.AddOrUpdate(() => service.Sync(),
  114. cron);
  115. }
  116. /// <summary>
  117. /// BI产量数据
  118. /// </summary>
  119. public void StartPushBIOutput()
  120. {
  121. var cron = $"0 */10 * * * ?";
  122. RecurringJob.AddOrUpdate(() => EapDataCollectBll.PushBIOutput(),
  123. cron);
  124. // BackgroundJob.Enqueue(() => EapDataCollectBll.PushBIOutput());
  125. }
  126. /// <summary>
  127. /// 断线通知
  128. /// </summary>
  129. public void DisconnectionNotice()
  130. {
  131. myloger.LogError($"机台断线邮件定时任务开始");
  132. var cron = Configuration["DisConnNoticeCron"].ToString();
  133. RecurringJob.AddOrUpdate(() => MailNotice.DisconnectionNotice(1),
  134. cron, TimeZoneInfo.Local);
  135. myloger.LogError($"机台断线邮件定时任务结束");
  136. }
  137. /// <summary>
  138. /// ip地址不一致通知
  139. /// </summary>
  140. public void IPDifferentNotice()
  141. {
  142. myloger.LogError($"ip地址不一致邮件定时任务开始");
  143. var cron = Configuration["DisConnNoticeCron"].ToString();
  144. RecurringJob.AddOrUpdate(() => MailNotice.IPDifferentAndDiconnectionNotice(),
  145. cron, TimeZoneInfo.Local);
  146. myloger.LogError($"ip地址不一致邮件定时任务结束");
  147. }
  148. /// <summary>
  149. /// AA抛料率未上传预警
  150. /// </summary>
  151. public void AAMaterialNotice()
  152. {
  153. myloger.LogError($"AA抛料率预警邮件定时任务开始");
  154. var cron = Configuration["AAMaterialNoticeCron"].ToString();
  155. RecurringJob.AddOrUpdate(() => MailNotice.AAMaterialUploadErrorNotice(),
  156. cron, TimeZoneInfo.Local);
  157. myloger.LogError($"AA抛料率预警邮件定时任务结束");
  158. }
  159. /// <summary>
  160. /// 删除因查询看板生成的临时视图
  161. /// </summary>
  162. public void ClearTempViews()
  163. {
  164. var cron = $"0 0/15 * * * *";
  165. MacStatusTotalDal dal = new MacStatusTotalDal();
  166. RecurringJob.AddOrUpdate(() => dal.ClearTempViews(), cron);
  167. }
  168. /// <summary>
  169. /// 计算
  170. /// </summary>5
  171. public void SyncMacLastStatus()
  172. {
  173. myloger.LogError($"计算机台当班最后状态开始");
  174. var cron = Configuration["SyncLastStatusCron"].ToString();
  175. var dal = new MacLastStatusDal();
  176. RecurringJob.AddOrUpdate(() => dal.SyncLastStatus(), cron, TimeZoneInfo.Local);
  177. myloger.LogError($"计算机台当班最后状态结束");
  178. }
  179. }
  180. }