Пользователь инициировал фоновый процесс в веб-приложении - PullRequest
1 голос
/ 08 октября 2009

У меня есть Java-приложение, подключенное с помощью Spring на Tomcat.

Мне нужен способ, чтобы пользователь мог инициировать фоновый процесс на сервере и возвращать ответ пользователю, не дожидаясь завершения фонового процесса.

Фоновый процесс запрограммирован в Java и интегрирован с моим приложением.

Так как я использую Tomcat, JMS не вариант. Я предпочел бы не настраивать мою установку Tomcat ради переносимости.

Я мог бы использовать Quartz или аналогичный и регулярно проверять, должен ли процесс выполняться, но я бы предпочел что-то, что началось немедленно.

Я пытался создать новый поток, но он не знает о моих бобах Spring.

Как лучше всего это сделать?

Спасибо

Макс

Ответы [ 3 ]

5 голосов
/ 08 октября 2009

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

0 голосов
/ 08 октября 2009

Вы можете просто запустить простой старый поток Java.

0 голосов
/ 08 октября 2009

Это звучит типично для запроса Ajax . : -)

Ваш браузер не будет ждать результата ...

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