Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Как правильно запустить параллельный процесс?


Автор: BuShaRt 8.7.2014, 16:01
Я новичок в Java и вообще в компилируемых языках, поддерживающих потоки (Вообще я программирую на PHP). Поэтому я могу ошибаться в принятой терминологии. Поправляйте меня пожалуйста.

У меня есть программа, которая может
1 Получить задание на выполнение процесса (процесс может длиться днями)
2 Получить задание на остановку выполнения процесса.
3 Получить задание сформировать отчет о процессе выполнения процесса.

Программа может получать задачи, на пример через интерфейс, запускаемый по требованию. Т.е. это не будет демон, который всегда ждет команд. Скорей это будет приложение командой строки, которое запустилось, выполнило команду, отчиталось и завершило работу.

С пунктами 2-ым и 3-им проблем особы не возникает. А вот как асинхронно запустить выполнение процесса мне не совсем ясно. Ведь интерфейс должен запустить процесс и сам отключиться, оставив процесс крутиться "на своей волне" и отчитываться только требованию (запуску команды №3). 

Я уже познакомился с потоками в java и даже начал их использовать в другой задаче, но я не уверен, что в данном случае их целесообразно использовать. Возможно есть смысл порождать целый отдельный процесс? Т.е. запускать отдельную программу?

Вопрос. Как вообще эту задачу правильно реализовать в JAVA?

Автор: CompWorm 10.7.2014, 03:01
раз у тебя основной процесс будет крутиться днями, то надо делать не стендэлон приложение, а интерпрайз. с jboss например можно запустить основной сервис в форме MDB (Message Driven Bean)  и некую "морду", оба как отдельные jar файлы. они будут работать параллельно благодаря... магии. MDB сервис будет слушать мессажы от морды, а жить они будут независимо друг от друга... морду можно запускать, когда надо о чем-то уведомить сервис.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Kak-pravilno-zapustit-parallelny-protsess-id53bbec07ae20152f118b4567#findElement_E7045_53bdd7daae2015f14bd307c1_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)