2010-08-10 3 views
3

Java에서 예약 된 작업을 하루에 한 번 실행하도록 설정하려고합니다.
문제는 첫날에만 실행된다는 것입니다.
아무 아이디어 나?
감사 대신Java recurrent task, dates with

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()); 

답변

5

사용 scheduleAtFixedRate(). 예를 들어,

TimerTask task = new EndOfDayRatesTimerTask(new MidnightQuotesEvent()); 
timer.scheduleAtFixedRate(task, date.getTime(), TimeUnit.DAYS.toMillis(1)); 
0

당신은 schedule()의 싱글 샷 버전을 사용하고 있습니다. 후속 실행 사이의 지연을 지정하는 추가 매개 변수가있는 버전이 있습니다.