PushOutputJob.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using Cksoft.Data;
  2. using Cksoft.Data.Repository;
  3. using Cksoft.Unity;
  4. using DllEapDal.OFILM;
  5. using Microsoft.Extensions.Configuration;
  6. using Quartz;
  7. using System;
  8. using System.Threading;
  9. using System.Threading.Tasks;
  10. namespace BIOutputPush
  11. {
  12. public class PushOutputJob : IJob
  13. {
  14. public Task Execute(IJobExecutionContext context)
  15. {
  16. var delay = Convert.ToInt32(AppConfigurtaionServices.Configuration["Delay"]);
  17. var connStr = AppConfigurtaionServices.Configuration.GetConnectionString("eap");
  18. NLog.ILogger logger = NLog.LogManager.LoadConfiguration("NLog.config").GetCurrentClassLogger();
  19. logger.Fatal($"Delay:{delay}");
  20. return Task.Run(() =>
  21. {
  22. Thread.Sleep(delay * 60 * 1000);
  23. try
  24. {
  25. using (IDatabase db = DbFactory.Base(connStr, DatabaseType.MySql))
  26. {
  27. try
  28. {
  29. string errorinfo = string.Empty;
  30. var dal = new BICollectDal(db);
  31. db.BeginTrans();
  32. var res = dal.CollectOutput(delay, ref errorinfo);
  33. if (res > 0)
  34. {
  35. db.Commit();
  36. logger.Fatal("推送BI产量数据成功");
  37. }
  38. else
  39. {
  40. db.Rollback();
  41. logger.Error($"推送BI产量数据失败,原因为:{errorinfo}");
  42. }
  43. }
  44. catch (Exception ex)
  45. {
  46. if (db != null)
  47. db.Rollback();
  48. logger.Error($"推送BI产量数据失败,原因为:{ex.ToString()}");
  49. }
  50. }
  51. }
  52. catch (Exception ex)
  53. {
  54. logger.Error(ex.Message);
  55. }
  56. });
  57. }
  58. }
  59. }