using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Quartz; using FMSAdmin.QuartzSchedule.Jobs; namespace FMSAdmin.QuartzSchedule.Schedulers { public class AlarmLogPushScheduler { private readonly ILogger _logger; private readonly IScheduler _scheduler; public AlarmLogPushScheduler(ILogger logger, IScheduler scheduler) { _logger = logger; _scheduler = scheduler; } public Task Start() { _logger.LogInformation("AlarmLogPushScheduler Start"); var jobDetails = JobBuilder .CreateForAsync() .WithIdentity("AlarmLogPushJob15Min") .WithDescription("15분 마다 경보푸시 발송 처리") .Build(); var trigger = TriggerBuilder .Create() .StartNow() .WithCronSchedule("0 */5 * * * ?") // 15분에 한번 .Build(); // [초 분 시 일 월 요일 연도] // */10 * * * * ? => 10초에 한번 // 1 * * * * ? => 매분 1초 // 1 0 0 * * ? => 매일 0시 0분 1초에 실행 var result = _scheduler.ScheduleJob(jobDetails, trigger); return result; } } }