Quartz 작업을 예약하는 .net Windows 서비스가 있습니다. 매일 오전 4시에 작업을 시작하고 12 시간마다 반복하려면 다음 코드를 작성했습니다. 아래의 시작 시간은 각 직업마다 다릅니다. 여기서 문제는 내가 말할 때 오전 4시에 시작하는 것이 아니라 매일 오전 12시와 12시에 실행하는 것입니다. StartAtTime에 요청했을 때 정확히 시작되는지 어떻게 확인할 수 있습니까? cron 표현의 값을 1/2로 줄이고 시작 시간을 오후 2시 또는 오후 3 시로 변경하면 예상대로 작동합니다.Cron 표현식이 올바르게 작동하지 않습니다.
var startAtTime = DateTime.Today.AddHours(localTime[Key]);
if (startAtTime.ToUniversalTime() < DateTime.UtcNow)
{
startAtTime = startAtTime.AddDays(1);
}
ITrigger objESLJobTrigger = TriggerBuilder.Create()
.WithIdentity("ESLTrigger-", AuditType.ESL.ToString())
.StartAt(new DateTimeOffset(startAtTime))
.WithCronSchedule("0 0 0/12 ? * SUN-SAT", x => x.WithMisfireHandlingInstructionIgnoreMisfires())
.Build();
나는 그것이 일정의 크론보다 유연 같은 느낌 때문에 간단한 트리거를 사용하지 않습니다. 시작 트리거와 시작 작업의 차이점은 무엇입니까, 트리거는 작업을 올바르게 실행합니다. 13 시간 HRS에서 startAt를 말하고 2 시간마다 반복해서 말하면 내 질문에서 말한 것처럼 정확히 13 시간 후에 시작하여 2 시간마다 반복합니다. –
@AjaySrikanth 님이 답변을 업데이트했습니다. 현재 (시작) 시간을 기준으로 cron 표현식을 동적으로 생성 할 수 있습니다. – Set
답장을 보내 주셔서 감사합니다.하지만 30 분마다 또는 특정 시간에 시작하는 2 시간 30 분마다 4 시간 (이 시간은 가변적 임)부터 시작할 수 있습니다. 간단한 방아쇠로. 내가 틀렸다고 정정하면 –