Program.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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. // Trigger the job to run now, and then repeat every 10 seconds
  56. ITrigger _CheckEVSEOnlineTrigger = TriggerBuilder.Create()
  57. .WithIdentity("trigger1", "group1")
  58. .StartNow()
  59. .WithSimpleSchedule(x => x
  60. .WithIntervalInSeconds(10)
  61. .RepeatForever())
  62. .Build();
  63. ITrigger _StartTransacionReportTrigger = TriggerBuilder.Create()
  64. .WithIdentity("trigger2", "group1")
  65. .StartNow()
  66. .WithSimpleSchedule(x => x
  67. .WithIntervalInSeconds(10)
  68. .RepeatForever())
  69. .Build();
  70. ITrigger _StopTransacionReportTrigger = TriggerBuilder.Create()
  71. .WithIdentity("trigger3", "group1")
  72. .StartNow()
  73. .WithSimpleSchedule(x => x
  74. .WithIntervalInSeconds(10)
  75. .RepeatForever())
  76. .Build();
  77. ITrigger _CheckExecutionCmdTrigger = TriggerBuilder.Create()
  78. .WithIdentity("trigger4", "group1")
  79. .StartNow()
  80. .WithSimpleSchedule(x => x
  81. .WithIntervalInSeconds(10)
  82. .RepeatForever())
  83. .Build();
  84. ITrigger _ExecutionCmdReportTrigger = TriggerBuilder.Create()
  85. .WithIdentity("trigger5", "group1")
  86. .StartNow()
  87. .WithSimpleSchedule(x => x
  88. .WithIntervalInSeconds(10)
  89. .RepeatForever())
  90. .Build();
  91. // Tell quartz to schedule the job using our trigger
  92. await scheduler.ScheduleJob(_CheckEVSEOnlineJob, _CheckEVSEOnlineTrigger);
  93. // await scheduler.ScheduleJob(_StartTransacionReportJob, _StartTransacionReportTrigger);
  94. // await scheduler.ScheduleJob(_StopTransacionReportJob, _StopTransacionReportTrigger);
  95. await scheduler.ScheduleJob(_CheckExecutionCmdJob, _CheckExecutionCmdTrigger);
  96. await scheduler.ScheduleJob(_ExecutionCmdReportJob, _ExecutionCmdReportTrigger);
  97. }
  98. catch (SchedulerException se)
  99. {
  100. Console.WriteLine(se);
  101. }
  102. }
  103. }
  104. }