Запланированные задачи Java (в окнах) - PullRequest
3 голосов
/ 09 июля 2011

Я столкнулся с проблемой, когда я хочу запланировать запуск определенного java-приложения каждые x дней или каждые x минут. Я действительно хочу иметь независимое от платформы решение, но я разочаровался в надежде найти хорошее решение.

Чтобы выполнить планирование, я прошел через несколько решений, одно из которых - сервисы, а другое - использование Windows API. Я действительно не люблю использовать сервис, он плохо разворачивается в моем проекте. Мне бы пришлось использовать некоторые сценарии для установки службы, которая, кажется, не является правильным решением для меня.

Я также пользовался службами планирования Windows. Они кажутся идеальными для работы. Но у меня проблемы с анализом командной строки. Я хочу иметь возможность изменить свою задачу после того, как я ее установил. но когда я запрашиваю инструмент командной строки, язык вывода может отличаться (локаль).

Может быть, есть решение, которое реализует различные состояния в каждой операционной системе?

Ответы [ 2 ]

10 голосов
/ 09 июля 2011

Конечно, попробуйте Кварц . Никаких скриптов, никаких сервисов, просто JAR в вашем приложении. Вся Java - работает на любой ОС.

Я не понимаю, почему требуется независимость от платформы. По моему опыту, запланированные задания редко перемещаются с сервера, на котором они развернуты, если только необходимость в задании не исчезнет или сервер не будет удален. Они просто не двигаются .

Если Quartz не ваша чашка чая, я бы порекомендовал найти администратора сервера, который знает Windows лучше, чем вы, чтобы развернуть работу cron и покончить с ней.

2 голосов
/ 09 июля 2011

Хотя для меня «независимое от платформы решение» и «я хочу использовать службу планирования Windows» довольно противоречиво (и я согласен с duffymo в том, что Quartz, вероятно, является лучшим решением для чистой Java), некоторые сценарии Powershell могут приводить к манипулированию запланированными программами. в Windows немного проще - посмотрите здесь и здесь и здесь плюс сотни других мест, где обсуждается Powershell. И все современные Windows должны иметь Powershell на борту.

...