あなたの問題は、の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