Как запустить метод каждый вечер 6 вечера в Java? - PullRequest
0 голосов
/ 08 февраля 2012
public ReportService() {
        super();
        // TODO Auto-generated constructor stub
        executorService = Executors.newSingleThreadScheduledExecutor();
        executorService.schedule(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                try {
                    exportToMailDaily();
                } catch (Throwable e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }, 1L, TimeUnit.DAYS);
    }

как запустить exportToMailDaily() метод каждый вечер в 18:00. я путаю 1L, TimeUnit.DAYS здесь ... как это сделать.

Ответы [ 6 ]

4 голосов
/ 08 февраля 2012

Самый простой способ - использовать задание Linux cron или запланированное задание Windows для запуска вашей Java-программы в подходящее время.

Проверка времени в Java кажется запутанным подходом.

4 голосов
/ 08 февраля 2012

Посмотрите на Кварцевый каркас .

1 голос
/ 08 февраля 2012

Вот хорошее руководство, как это сделать: Java Practices

Удачи.

0 голосов
/ 08 февраля 2012

Используйте java.util.Timer для простого планирования работы.Для этого вам не нужно напрямую использовать исполнителей.

0 голосов
/ 08 февраля 2012

Подсчитайте, сколько вам нужно спать, и поспите соответственно. Возможно, ограничьте сон следующим полным часом, чтобы не удивляться ошибкам в подсчете летнего времени. Пробуждение раз в час для пересчета времени сна довольно дешево.

Приостановка ноутбука, установка часов и т. Д., Вероятно, все равно приведут вас к синхронизации. Хорошей идеей будет придерживаться установленных утилит, таких как cron, которые решили все эти проблемы.

0 голосов
/ 08 февраля 2012

Ваша программа или какой-либо сторонний планировщик или планировщик операционной системы должны работать постоянно. Нет способа сделать это только в Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...