12345678910111213141516171819202122232425262728293031323334353637383940 |
- using System.Threading.Tasks;
- using Microsoft.Extensions.Logging;
- using Quartz;
- using FMSAdmin.QuartzSchedule.Jobs;
- namespace FMSAdmin.QuartzSchedule.Schedulers {
- public class AlarmLogPushScheduler {
- private readonly ILogger<AlarmLogPushScheduler> _logger;
- private readonly IScheduler _scheduler;
- public AlarmLogPushScheduler(ILogger<AlarmLogPushScheduler> logger, IScheduler scheduler) {
- _logger = logger;
- _scheduler = scheduler;
- }
- public Task Start() {
- _logger.LogInformation("AlarmLogPushScheduler Start");
- var jobDetails = JobBuilder
- .CreateForAsync<AlarmLogPushJob>()
- .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;
- }
- }
- }
|