문제가 startTime을을 구성하는 것입니다. startTime은 트리거가 발생해야하는 시점을 의미합니다. 날짜가 오래 되었기 때문에 이것은 스케줄러에서 실화를 야기하며 디폴트 동작은 스케줄러가 즉시 리파인하는 것입니다.
setStartTime을 제거하면 기본 동작은 startTime이 현재 시간으로 설정되고 첫 번째 트리거 시간이이 목요일의 시작 시간 이후에 cron 트리거와 일치합니다. 을 통해 함께 내가 확인
빠른 작은 시험 :
public class Test {
public static void main(String[] args) throws ParseException, SchedulerException {
String groupName = "group";
String cronExpression = "0 13 13 ? * THUR";
CronTrigger cronTrigger = new CronTrigger("trigger_" + groupName, groupName, cronExpression);
cronTrigger.setStartTime(new Date(0));
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
JobDetail detail = new JobDetail("testJob", groupName, TestJob.class);
scheduler.scheduleJob(detail, cronTrigger);
scheduler.start();
try {
Thread.sleep(50001);
} catch (Exception ignore) {
}
}
public static class TestJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("TEST");
}
}
}
내 인쇄 메시지가 실행되지 않는 setStartTime을 제거. 거기에서 인쇄 메시지가 나타납니다.
* '0 13 13? * FRI' *? –
오오 그렇습니다. 실제로 잘못된 파일에서 복사했습니다. – Waqas