Global.asax 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <%@ Application Language="C#" %>
  2. <%@ Import Namespace="Curtain.DataAccess" %>
  3. <%@ Import Namespace="Curtain.Log" %>
  4. <%@ Import Namespace="DK.XuWei.WebMes" %>
  5. <script RunAt="server">
  6. // 定时器
  7. System.Timers.Timer tr = null;
  8. void Application_Start(object sender, EventArgs e)
  9. {
  10. // 在应用程序启动时运行的代码
  11. string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
  12. DataAccess.DefaultParameterType = SQLParameterType.CDA;
  13. DataAccess.DefaultDataBaseType = Curtain.DataAccess.DataBaseType.Oracle;
  14. DataAccess.DefaultConnectionString = connStr;
  15. string timerLoadFlag = ConfigurationManager.AppSettings["TimerLoadFlag"].ToString();
  16. if ("1".Equals(timerLoadFlag))
  17. {
  18. // 设置定时器
  19. tr_Load();
  20. }
  21. }
  22. /// <summary>
  23. /// 设置定时器
  24. /// </summary>
  25. void tr_Load()
  26. {
  27. Logger.Debug("$$$定时器已启动$$$");
  28. //设置timer
  29. tr = new System.Timers.Timer(60000);
  30. tr.Elapsed += new System.Timers.ElapsedEventHandler(tr_Timer);
  31. tr.Enabled = true;
  32. tr.AutoReset = true;
  33. }
  34. /// <summary>
  35. /// 定时器要执行的任务
  36. /// </summary>
  37. /// <param name="sender"></param>
  38. /// <param name="e"></param>
  39. void tr_Timer(object sender, EventArgs e)
  40. {
  41. DateTime now = System.DateTime.Now;
  42. // 中台任务
  43. zhongtai_task(now);
  44. // 昆船WMS任务
  45. kunchuan_task(now);
  46. }
  47. /// <summary>
  48. /// 中台任务
  49. /// </summary>
  50. void zhongtai_task(DateTime now)
  51. {
  52. if (now.Minute == 5 || now.Minute == 15 || now.Minute == 25 || now.Minute == 35 || now.Minute == 45 || now.Minute == 55)
  53. {
  54. Logger.Debug("自动同步中台:定时触发开始");
  55. string msg = SyncZhongTai.SyncFinishedProduct(now.Date, false);
  56. Logger.Debug("自动同步中台:定时触发结束,结果:\n" + msg);
  57. }
  58. // 如果现在是00点10分,把昨天剩余的全都同步过去
  59. string currTime = now.ToString("HH:mm");
  60. if ("00:10".Equals(currTime))
  61. {
  62. Logger.Debug("自动同步中台_剩余条码:定时触发开始");
  63. string msg = SyncZhongTai.SyncFinishedProduct(now.Date.AddDays(-1), true);
  64. Logger.Debug("自动同步中台_剩余条码:定时触发结束,结果:\n" + msg);
  65. }
  66. }
  67. /// <summary>
  68. /// 昆船WMS任务
  69. /// </summary>
  70. void kunchuan_task(DateTime now)
  71. {
  72. if (now.Minute == 8 || now.Minute == 18 || now.Minute == 28 || now.Minute == 38 || now.Minute == 48 || now.Minute == 58)
  73. {
  74. Logger.Debug("自动同步昆船WMS:定时触发开始");
  75. string msg = SyncKunChuan.SyncFinishedProduct(now.Date, false);
  76. Logger.Debug("自动同步昆船WMS:定时触发结束,结果:\n" + msg);
  77. }
  78. // 如果现在是00点10分,把昨天剩余的全都同步过去
  79. string currTime = now.ToString("HH:mm");
  80. if ("00:12".Equals(currTime))
  81. {
  82. Logger.Debug("自动同步昆船WMS_剩余条码:定时触发开始");
  83. string msg = SyncKunChuan.SyncFinishedProduct(now.Date.AddDays(-1), true);
  84. Logger.Debug("自动同步昆船WMS_剩余条码:定时触发结束,结果:\n" + msg);
  85. }
  86. }
  87. void Application_End(object sender, EventArgs e)
  88. {
  89. // 在应用程序关闭时运行的代码
  90. Logger.Debug("$$$定时器被关闭$$$");
  91. if (tr != null)
  92. {
  93. tr.Dispose();
  94. }
  95. // 重新唤醒当前应用
  96. ReworkHttp.Rework();
  97. }
  98. void Application_Error(object sender, EventArgs e)
  99. {
  100. // 在出现未处理的错误时运行的代码
  101. Exception error = Server.GetLastError().GetBaseException();
  102. if (error != null)
  103. {
  104. //记录日志
  105. Logger.Error(error);
  106. //输出错误信息
  107. //2022-11-15 冯林勇 出现错误不弹出日志
  108. //HttpContext.Current.Response.Write(new JsonResult(JsonStatus.otherError).ToJson());
  109. //2022-11-15 冯林勇 出现错误不弹出日志
  110. }
  111. Server.ClearError();
  112. }
  113. void Session_Start(object sender, EventArgs e)
  114. {
  115. // 在新会话启动时运行的代码
  116. }
  117. void Session_End(object sender, EventArgs e)
  118. {
  119. // 在会话结束时运行的代码。
  120. // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
  121. // InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
  122. // 或 SQLServer,则不引发该事件。
  123. }
  124. </script>