Выполнение запланированной задачи, написанной в Java на сервере Linux - PullRequest
2 голосов
/ 27 января 2011

Мне нужно запускать фрагмент кода Java на сервере Linux каждый день в определенное время.

На данный момент я тестирую его на рабочем столе Ubuntu, запустив его из терминала, и он работает должным образом и по мере необходимости.Для планирования я использовал библиотеку из здесь .

На реальном сервере, какой будет правильный способ запустить это как процесс?

Я имею в виду,на своем рабочем столе я запускаю код из терминала, указывая время, близкое к текущему, в первый раз проверяю его и затем останавливаю (^ Z).

На сервере это был бы правильный способ просто отодвинуть его на задний план?Я уверен, что должен быть лучший способ добиться этого.

Спасибо

Ответы [ 6 ]

5 голосов
/ 27 января 2011

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

3 голосов
/ 27 января 2011

Вы можете написать сценарий оболочки для выполнения вашей утилиты Java (вам может потребоваться добавить classpath и другие переменные окружения) и поместить его в ваш crontab.

Вот краткий ссылка на crontab .

2 голосов
/ 27 января 2011

Я бы использовал crontab на Linux-машине, чтобы запустить мой процесс. Планирование внутри Java тоже работает. но с помощью crontab у вас не будет постоянно работать Java-процесс, а только для вашей задачи

2 голосов
/ 27 января 2011

Обычно в приложении J2EE Кварцевый график настроен

Quartz - это полнофункциональная служба планирования заданий с открытым исходным кодом, которую можно интегрировать или использовать практически с любым приложением Java EE или Java SE - от самого маленького автономного приложения до крупнейшей системы электронной коммерции. Кварц можно использовать для создания простых или сложных графиков выполнения десятков, сотен или даже десятков тысяч заданий; задания, задачи которых определены как стандартные компоненты Java, которые могут выполнять практически все, что вы можете их запрограммировать. Кварцевый планировщик включает в себя множество функций корпоративного класса, таких как транзакции JTA и кластеризация.

1 голос
/ 27 января 2011

Просто можете запустить его из cron (8).Это, конечно, предполагает, что ваша задача завершается через некоторое время.Если вы хотите запустить его во время запуска системы и запустить его, поместите стартовый скрипт в /etc/init.d/ со ссылкой на правильный стартовый каталог уровня запуска и внутренне используйте библиотеку, такую ​​как Quartz, чтобы запланировать свою работу..

1 голос
/ 27 января 2011

Существуют сервисные обертки для linux, но чаще всего это просто

nohup java {etc} 2>&1 > my.log & 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...