2010-03-21 2 views
1

Я просто хочу, чтобы моя программа или метод выполнялись в определенные даты и время. Я слышал о Timer и TimerTask в java API. Но не знаю точно, как его использовать.Запуск программы или метода в определенное время в Java

+3

"программа или метод"? Что это, программа или метод? – skaffman

ответ

3

Если вы хотите запустить java-программу в определенное время, вы, вероятно, захотите посмотреть на инструменты ОС (например, cron или at).

Если вы хотите запустить метод внутри уже запущенного java-приложения, то ScheduleExecutorService, хотя он может быть чрезмерным, довольно прост в использовании.

0

Возможно, вам придется использовать стороннюю библиотеку с API более высокого уровня, например Quartz, и использовать SimpleTrigger.

1

Если это для вашей собственной выгоды, а не для проекта, я бы предложил вам ознакомиться с http://java.sun.com/javase/6/docs/api/java/util/concurrent/ScheduledThreadPoolExecutor.html, который является заменой для java.util.Timer. Если вам нужен надежный планировщик, я согласен с предыдущими плакатами в отношении кварца.

0

Вы можете выполнить свою задачу внутри сервера Java EE Glassfish. Он поддерживает службу таймера, которая запускает фоновые задачи через определенные промежутки времени. Когда вы запускаете кластер серверов Glassfish на разных машинах, они будут сотрудничать, чтобы запустить задачу ровно один раз.

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

Я также использовал pycron на Windows, который является сервисом, который эмулирует cron.