using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Quartz; using FMSAdmin.QuartzSchedule.Jobs; namespace FMSAdmin.QuartzSchedule.Schedulers { public class SiteScheduler { private readonly ILogger _logger; private readonly IScheduler _scheduler; public SiteScheduler(ILogger logger, IScheduler scheduler) { _logger = logger; _scheduler = scheduler; } public Task StartSiteWeatherDaily() { _logger.LogInformation("SiteWeatherDaily"); /* var jobDetails = JobBuilder .CreateForAsync() .WithIdentity("SiteWeatherJobDaily") .WithDescription("매일 10시 모든 사이트의 날씨정보 저장") .Build(); var trigger = TriggerBuilder .Create() .StartNow() .WithCronSchedule("0 0 10 * * ?") // 매일 0시 0분 1초에 실행 .Build(); */ var jobDetails = JobBuilder .CreateForAsync() .WithIdentity("SiteWeatherJobDaily") .WithDescription("매 시간 모든 사이트의 날씨정보 저장") .Build(); var trigger = TriggerBuilder .Create() .StartNow() .WithCronSchedule("0 0 0/1 * * ?") // 매시간 0분 0초에 실행 .Build(); // [초 분 시 일 월 요일 연도] // */10 * * * * ? => 10초에 한번 // 1 * * * * ? => 매분 1초 // 1 0 0 * * ? => 매일 0시 0분 1초에 실행 var result = _scheduler.ScheduleJob(jobDetails, trigger); return result; } public Task StartClearTempFileDaily() { _logger.LogInformation("StartClearTempFileDaily"); var jobDetails = JobBuilder .CreateForAsync() .WithIdentity("ClearTempFileJobDaily") .WithDescription("매일 6시 전날 임시파일 정리") .Build(); var trigger = TriggerBuilder .Create() .StartNow() .WithCronSchedule("0 0 6 * * ?") .Build(); var result = _scheduler.ScheduleJob(jobDetails, trigger); return result; } public Task StartFacilityQRCodeGen() { _logger.LogInformation("StartFacilityQRCodeGen"); var jobDetails = JobBuilder .CreateForAsync() .WithIdentity("ClearTempFileJobDaily") .WithDescription("매일 6시 전날 임시파일 정리") .Build(); var trigger = TriggerBuilder .Create() .StartNow() .WithCronSchedule("0 0 6 * * ?") .Build(); var result = _scheduler.ScheduleJob(jobDetails, trigger); return result; } } }