SiteScheduler.cs 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using System.Threading.Tasks;
  2. using Microsoft.Extensions.Logging;
  3. using Quartz;
  4. using FMSAdmin.QuartzSchedule.Jobs;
  5. namespace FMSAdmin.QuartzSchedule.Schedulers {
  6. public class SiteScheduler {
  7. private readonly ILogger<WorkScheduler> _logger;
  8. private readonly IScheduler _scheduler;
  9. public SiteScheduler(ILogger<WorkScheduler> logger, IScheduler scheduler) {
  10. _logger = logger;
  11. _scheduler = scheduler;
  12. }
  13. public Task StartSiteWeatherDaily() {
  14. _logger.LogInformation("SiteWeatherDaily");
  15. /*
  16. var jobDetails = JobBuilder
  17. .CreateForAsync<SiteWeatherJob>()
  18. .WithIdentity("SiteWeatherJobDaily")
  19. .WithDescription("매일 10시 모든 사이트의 날씨정보 저장")
  20. .Build();
  21. var trigger = TriggerBuilder
  22. .Create()
  23. .StartNow()
  24. .WithCronSchedule("0 0 10 * * ?") // 매일 0시 0분 1초에 실행
  25. .Build();
  26. */
  27. var jobDetails = JobBuilder
  28. .CreateForAsync<SiteWeatherJob>()
  29. .WithIdentity("SiteWeatherJobDaily")
  30. .WithDescription("매 시간 모든 사이트의 날씨정보 저장")
  31. .Build();
  32. var trigger = TriggerBuilder
  33. .Create()
  34. .StartNow()
  35. .WithCronSchedule("0 0 0/1 * * ?") // 매시간 0분 0초에 실행
  36. .Build();
  37. // [초 분 시 일 월 요일 연도]
  38. // */10 * * * * ? => 10초에 한번
  39. // 1 * * * * ? => 매분 1초
  40. // 1 0 0 * * ? => 매일 0시 0분 1초에 실행
  41. var result = _scheduler.ScheduleJob(jobDetails, trigger);
  42. return result;
  43. }
  44. public Task StartClearTempFileDaily() {
  45. _logger.LogInformation("StartClearTempFileDaily");
  46. var jobDetails = JobBuilder
  47. .CreateForAsync<ClearTempFileJob>()
  48. .WithIdentity("ClearTempFileJobDaily")
  49. .WithDescription("매일 6시 전날 임시파일 정리")
  50. .Build();
  51. var trigger = TriggerBuilder
  52. .Create()
  53. .StartNow()
  54. .WithCronSchedule("0 0 6 * * ?")
  55. .Build();
  56. var result = _scheduler.ScheduleJob(jobDetails, trigger);
  57. return result;
  58. }
  59. public Task StartFacilityQRCodeGen() {
  60. _logger.LogInformation("StartFacilityQRCodeGen");
  61. var jobDetails = JobBuilder
  62. .CreateForAsync<ClearTempFileJob>()
  63. .WithIdentity("ClearTempFileJobDaily")
  64. .WithDescription("매일 6시 전날 임시파일 정리")
  65. .Build();
  66. var trigger = TriggerBuilder
  67. .Create()
  68. .StartNow()
  69. .WithCronSchedule("0 0 6 * * ?")
  70. .Build();
  71. var result = _scheduler.ScheduleJob(jobDetails, trigger);
  72. return result;
  73. }
  74. }
  75. }