Spring MVC и @Async - PullRequest
       2

Spring MVC и @Async

3 голосов
/ 11 июня 2011

У меня есть длительный метод Service (занимающийся бизнес-логикой), и я хотел бы, чтобы клиент вернулся сразу после отправки запроса в контроллер.Я хотел бы, чтобы клиент периодически опрашивал, чтобы убедиться, что метод Service завершил выполнение.Прочитав эти две ссылки: link1 link2 , я убежден, что @Async - правильный подход для моей ситуации.Мой вопрос в том, какой метод Service или метод Controller должен иметь аннотацию @Async.И как именно метод Controller будет иметь ссылку на объект Future, чтобы он мог вызывать свои методы get() или isDone().

1 Ответ

11 голосов
/ 11 июня 2011

Поместите @Async в метод сервиса, который вызывает "настоящий" метод сервиса.Таким образом, у вас есть два способа вызвать его, асинхронный и не асинхронный.

Попросите метод контроллера сохранить будущее, возвращенное службой в сеансе, а затем вернуться.Затем, когда клиент опрашивает контроллер (по другому URL / методу), контроллер может получить Future из сеанса и вызвать isDone () для него.

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