Java повторяющаяся задача, проблема с датами - PullRequest
3 голосов
/ 10 августа 2010

Я пытаюсь установить запланированное задание в Java для запуска один раз в день.
Проблема в том, что он работает только в первый день.
Есть идеи у?
Спасибо

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

Ответы [ 2 ]

5 голосов
/ 10 августа 2010

Используйте взамен scheduleAtFixedRate () . Например,

TimerTask task = new EndOfDayRatesTimerTask(new MidnightQuotesEvent());
timer.scheduleAtFixedRate(task, date.getTime(), TimeUnit.DAYS.toMillis(1));
0 голосов
/ 10 августа 2010

Вы используете однократную версию schedule(). Есть версия, которая принимает дополнительный параметр для указания задержки между последующими выполнениями.

...