using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Quartz; using FMSAdmin.QuartzSchedule.Jobs; using System.Collections.Generic; namespace FMSAdmin.QuartzSchedule.Schedulers { public class WorkScheduler { private readonly ILogger _logger; private readonly IScheduler _scheduler; public WorkScheduler(ILogger logger, IScheduler scheduler) { _logger = logger; _scheduler = scheduler; } public Task StartWorkToOrderAndResultEveryDay() { _logger.LogInformation("StartWorkToOrderEveryDay"); var jobDetails = JobBuilder .CreateForAsync() .WithIdentity("WorkToOrderJobEveryDay") .WithDescription("매일 0시 작업진행 처리") .Build(); var triggerHourly = TriggerBuilder .Create() .StartNow() .WithCronSchedule("1 0 * * * ?") // 매시 0분 1초에 실행 .Build(); // [초 분 시 일 월 요일 연도] // */10 * * * * ? => 10초에 한번 // 1 * * * * ? => 매분 1초 // 1 0 0 * * ? => 매일 0시 0분 1초에 실행 var result = _scheduler.ScheduleJob(jobDetails, triggerHourly); return result; } } }