Интеграция приложений Spring Batch с администратором Spring Batch - PullRequest
3 голосов
/ 30 июля 2011

Я разработал одно весеннее пакетное приложение, которое развертывается как исполняемый файл jar с использованием скрипта batch / shell.Работает нормально.

Сейчас я недавно прочитал о выпуске приложения админки Spring batch.Согласно их документу, они говорят, что вы должны указать на job-context.xml, и это позволит управлять запуском весеннего приложения, его перезапуском и остановкой из приложения администратора.Теперь мой вопрос заключается в том, должен ли я сохранить свой файл job-context.xml вне фляги или каковы точные шаги, я запутался в этой конфигурации.Любое понимание этого очень полезно, и, кстати, я использую весеннюю партию 2.1.

Спасибо

Ответы [ 2 ]

2 голосов
/ 18 декабря 2012

Приложение администрирования Spring Batch является хорошей эталонной реализацией и легко настраивается.Все реализации интерфейса могут быть заменены через Spring DI, используя ваши собственные классы.Пользовательский интерфейс также управляется на основе шаблонов (я думаю, что FreeMarker) и поэтому может быть настроен для отображения соответствующей информации, изменения скина и т. Д.

У меня была такая же потребность, как и у вас - мне нужны функции администратора, включенные в приложение, созданное как jar.Мне не очень понравился тот факт, что я должен был упаковать свои работы в файл .war.Вместо этого я извлек соответствующие конфигурации из источника Spring Batch Admin и создал развертывание, которое работает на файловой системе и работает на встроенном сервере Jetty.

См. Снимки экрана здесь: https://github.com/regunathb/Trooper/wiki/Trooper-Batch-Web-Console

Источник, конфигурации и т. Д.доступны здесь: https://github.com/regunathb/Trooper/tree/master/batch-core.Этот проект на самом деле создает .jar, а не .war

1 голос
/ 25 октября 2012

Если ваше приложение имеет пользовательские классы и развернуто как исполняемый файл jar и не содержится в администраторе Spring Batch, вы не можете запускать задания. Вы можете только просматривать статус заданий и «убивать» их статус в базе данных.

Если вы посмотрите на http://static.springsource.org/spring-batch-admin/reference/reference.xhtml в конце раздела загрузки конфигурации, в нем будет указано

Вы можете увидеть новую запись в реестре заданий ("test-job"), которая запускаемый в процессе, потому что приложение имеет ссылку на Работа. ( Задания, которые не запускаются, были выполнены вне процесса, но использовали ту же базу данных для своего JobRepository, поэтому они отображаются с их казни в пользовательском интерфейсе. )

Если ваши задания являются строго настраиваемыми заданиями, так как вы используете только XML для их определения и вам не нужно выполнять какие-либо настраиваемые программы чтения / обработки / записи или другие пользовательские классы, тогда вы можете загрузить задание XML, и оно будет быть запущенным изнутри сайта администратора. Если у вас есть пользовательские классы, то, исходя из моего опыта, вам нужно будет развернуть приложение Spring Batch в своем веб-приложении, а затем загрузить XML-файл, содержащий задания, которые вы хотите запускать отдельно.

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

...