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