Запустить программу или метод в определенное время на Java - PullRequest
1 голос
/ 22 марта 2010

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

Ответы [ 4 ]

3 голосов
/ 22 марта 2010

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

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

1 голос
/ 22 марта 2010

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

0 голосов
/ 22 марта 2010

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

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

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

0 голосов
/ 22 марта 2010

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

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