Может ли JMS использоваться в приложении Java Swing - PullRequest
1 голос
/ 18 февраля 2010

Мне нужно разработать приложение Swing, которое должно будет отправлять несколько заданий по запросу клиента. каждое задание запускает одни и те же сценарии оболочки, которые возвращают значение в течение 10-30 минут. (задания не выполняются на сервере приложений или в виде веб-служб.) тогда приложение Swing должно будет решить, что делать дальше, в соответствии с возвращаемым значением. мой вопрос, могу ли я использовать JMS для рассылки вакансий. если нет, что вы предлагаете мне посмотреть? многопоточность ....

Большое спасибо!

Ответы [ 4 ]

4 голосов
/ 18 февраля 2010

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

Что JMS решит для вас (и вам нужно будет найти легковесную реализацию JMS, которая будет работать на настольном компьютере), так это разрешить повторные попытки и гарантировать, что процесс будет завершен. То, что для запуска сценария оболочки занимает 20 минут, не похоже на то, что оно является кандидатом на повторную попытку, но если это так, и важно, чтобы сообщение действительно прошло, а не просто как поток умирает, а процесс забывается если пользователь закрывает приложение java, то JMS - это то, на что нужно обратить внимание.

2 голосов
/ 18 февраля 2010

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

2 голосов
/ 18 февраля 2010

JMS наверняка можно использовать в приложении на основе Swing. Если сценарии оболочки должны выполняться на сервере службой, которая прослушивает очередь JMS и отвечает в другой очереди или теме.

Ничто не ограничивает вас от использования очередей или тем JMS в настольном приложении.

1 голос
/ 18 февраля 2010

Вы можете - или не можете - получать прибыль от использования планировщика заданий, такого как Quartz. Может быть, это излишне, может быть, это именно то, что вам нужно.

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