12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- using System.Threading.Tasks;
- using Microsoft.Extensions.Logging;
- using Quartz;
- using FMSAdmin.QuartzSchedule.Jobs;
- namespace FMSAdmin.QuartzSchedule.Schedulers {
- public class SiteScheduler {
- private readonly ILogger<WorkScheduler> _logger;
- private readonly IScheduler _scheduler;
- public SiteScheduler(ILogger<WorkScheduler> logger, IScheduler scheduler) {
- _logger = logger;
- _scheduler = scheduler;
- }
- public Task StartSiteWeatherDaily() {
- _logger.LogInformation("SiteWeatherDaily");
- /*
- var jobDetails = JobBuilder
- .CreateForAsync<SiteWeatherJob>()
- .WithIdentity("SiteWeatherJobDaily")
- .WithDescription("매일 10시 모든 사이트의 날씨정보 저장")
- .Build();
- var trigger = TriggerBuilder
- .Create()
- .StartNow()
- .WithCronSchedule("0 0 10 * * ?") // 매일 0시 0분 1초에 실행
- .Build();
- */
- var jobDetails = JobBuilder
- .CreateForAsync<SiteWeatherJob>()
- .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<ClearTempFileJob>()
- .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<ClearTempFileJob>()
- .WithIdentity("ClearTempFileJobDaily")
- .WithDescription("매일 6시 전날 임시파일 정리")
- .Build();
- var trigger = TriggerBuilder
- .Create()
- .StartNow()
- .WithCronSchedule("0 0 6 * * ?")
- .Build();
- var result = _scheduler.ScheduleJob(jobDetails, trigger);
- return result;
- }
- }
- }
|