Каковы наилучшие способы запуска очень длинного фонового процесса из веб-приложения Java?

Если вы хотите запустить скрипты (.sh,jar,.py,.pl...), которые выполняются более нескольких часов простым нажатием на пользовательский интерфейс (например, на симпатичной странице jsf). Каковы лучшие методы бросить процесс. Метод Running.exec(), использование Threads или что-то еще? Благодарю.

1 ответ

Решение

Определенно не используйте долго работающие потоки внутри веб-приложения Java. Отправьте сообщение с задачей (в идеале через очередь (например, rabbitmq)) в отдельное приложение со своим собственным пулом потоков, который затем будет независимо обрабатывать долгосрочные задачи, запрошенные пользователями веб-приложения.

Если в вашей системе не установлена ​​система обмена сообщениями, и вы обнаружите, что издержки на управление ею слишком высоки, и вы уже используете некоторое sql или no-sql или другое хранилище, вы, вероятно, можете адаптировать это хранилище, чтобы оно также использовалось для связи между веб-приложение и ваше новое отдельное приложение для работы с длинными запросами.

Другие вопросы по тегам