我正在尝试在java中设置一个计划任务,以便在一天内运行一次
问题是它只在第一天运行
任何想法y?
谢谢
log.info("Schdualing midnight task");
Timer timer = new Timer();
Calendar date = Calendar.getInstance();
date.set(Calendar.HOUR_OF_DAY, 23);
date.set(Calendar.MINUTE, 30);
date.set(Calendar.SECOND, 0);
timer.schedule(new EndOfDayRatesTimerTask(new MidnightQuotesEvent()),
date.getTime());
答案 0 :(得分:5)
请改用scheduleAtFixedRate()。例如,
TimerTask task = new EndOfDayRatesTimerTask(new MidnightQuotesEvent());
timer.scheduleAtFixedRate(task, date.getTime(), TimeUnit.DAYS.toMillis(1));
答案 1 :(得分:0)
您正在使用schedule()
的单次拍摄版本。有一个版本需要额外的参数来指定后续执行之间的延迟。