Program.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. 
  2. using EVCB_OCPP.TaskScheduler.Jobs;
  3. using EVCB_OCPP.TaskScheduler.Services;
  4. using Quartz;
  5. using Quartz.Impl;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace EVCB_OCPP.TaskScheduler
  12. {
  13. class Program
  14. {
  15. static private NLog.ILogger logger = NLog.LogManager.GetCurrentClassLogger();
  16. private static void Main(string[] args)
  17. {
  18. try
  19. {
  20. logger.Info("running....");
  21. DatabaseService service = new DatabaseService();
  22. service.GetCallParterAPICustomers();
  23. DoHardWork().GetAwaiter().GetResult();
  24. }
  25. catch (Exception ex)
  26. {
  27. logger.Error(ex);
  28. }
  29. Console.Read();
  30. }
  31. private static async Task DoHardWork()
  32. {
  33. try
  34. {
  35. // Grab the Scheduler instance from the Factory
  36. IScheduler scheduler = await StdSchedulerFactory.GetDefaultScheduler();
  37. // and start it off
  38. await scheduler.Start();
  39. // define the job and tie it to our HelloJob class
  40. IJobDetail _CheckEVSEOnlineJob = JobBuilder.Create<CheckEVSEOnlineJob>()
  41. .WithIdentity("job1", "group1")
  42. .Build();
  43. IJobDetail _StartTransacionReportJob = JobBuilder.Create<StartTransacionReportJob>()
  44. .WithIdentity("job2", "group1")
  45. .Build();
  46. IJobDetail _StopTransacionReportJob = JobBuilder.Create<StopTransacionReportJob>()
  47. .WithIdentity("job3", "group1")
  48. .Build();
  49. IJobDetail _CheckExecutionCmdJob = JobBuilder.Create<CheckExecutionCmdJob>()
  50. .WithIdentity("job4", "group1")
  51. .Build();
  52. IJobDetail _ExecutionCmdReportJob = JobBuilder.Create<ExecutionCmdReportJob>()
  53. .WithIdentity("job5", "group1")
  54. .Build();
  55. IJobDetail _TriggerBillJob = JobBuilder.Create<TriggerBillJob>()
  56. .WithIdentity("job6", "group1")
  57. .Build();
  58. // Trigger the job to run now, and then repeat every 10 seconds
  59. ITrigger _CheckEVSEOnlineTrigger = TriggerBuilder.Create()
  60. .WithIdentity("trigger1", "group1")
  61. .StartNow()
  62. .WithSimpleSchedule(x => x
  63. .WithIntervalInSeconds(10)
  64. .RepeatForever())
  65. .Build();
  66. ITrigger _StartTransacionReportTrigger = TriggerBuilder.Create()
  67. .WithIdentity("trigger2", "group1")
  68. .StartNow()
  69. .WithSimpleSchedule(x => x
  70. .WithIntervalInSeconds(10)
  71. .RepeatForever())
  72. .Build();
  73. ITrigger _StopTransacionReportTrigger = TriggerBuilder.Create()
  74. .WithIdentity("trigger3", "group1")
  75. .StartNow()
  76. .WithSimpleSchedule(x => x
  77. .WithIntervalInSeconds(10)
  78. .RepeatForever())
  79. .Build();
  80. ITrigger _CheckExecutionCmdTrigger = TriggerBuilder.Create()
  81. .WithIdentity("trigger4", "group1")
  82. .StartNow()
  83. .WithSimpleSchedule(x => x
  84. .WithIntervalInSeconds(10)
  85. .RepeatForever())
  86. .Build();
  87. ITrigger _ExecutionCmdReportTrigger = TriggerBuilder.Create()
  88. .WithIdentity("trigger5", "group1")
  89. .StartNow()
  90. .WithSimpleSchedule(x => x
  91. .WithIntervalInSeconds(10)
  92. .RepeatForever())
  93. .Build();
  94. ITrigger _TriggerBillTrigger = TriggerBuilder.Create()
  95. .WithIdentity("trigger6", "group1")
  96. .StartNow()
  97. .WithSimpleSchedule(x => x
  98. .WithIntervalInMinutes(10)
  99. .RepeatForever())
  100. .Build();
  101. // Tell quartz to schedule the job using our trigger
  102. await scheduler.ScheduleJob(_CheckEVSEOnlineJob, _CheckEVSEOnlineTrigger);
  103. // await scheduler.ScheduleJob(_StartTransacionReportJob, _StartTransacionReportTrigger);
  104. // await scheduler.ScheduleJob(_StopTransacionReportJob, _StopTransacionReportTrigger);
  105. await scheduler.ScheduleJob(_CheckExecutionCmdJob, _CheckExecutionCmdTrigger);
  106. await scheduler.ScheduleJob(_ExecutionCmdReportJob, _ExecutionCmdReportTrigger);
  107. await scheduler.ScheduleJob(_TriggerBillJob, _TriggerBillTrigger);
  108. }
  109. catch (SchedulerException se)
  110. {
  111. Console.WriteLine(se);
  112. }
  113. }
  114. }
  115. }