, поскольку мы знаем, что перехватчик перегородок выполняет и ждет, будет заботиться о длительном запуске процесса, не получая запрос на таймаут и уничтожая его, отправляет ожидание и, наконец, желаемый ответ, я хочу реализовать то же самое для долгого процесса весной и спящим ,Как реализовать длительный процесс в спящем режиме весной?
ответ
Я рекомендую использовать DeferredResult of Spring. Это реализация будущего, которая использует технику длинного полигона http.
Так давайте, говорит, что вы будете делать запрос, а сервер он возвратит вас deferredResult, и тогда ваш запрос будет держать его открытым до тех пор, внутренний процесс (Hibernate) не закончит свою задачу. Тайм-аут настраивается в конструкторе.
Вот еще один пример http://www.javacodegeeks.com/2013/03/deferredresult-asynchronous-processing-in-spring-mvc.html
Чтобы сохранить сеанс открытым в течение всего срока службы запроса, мы привязываем его к виду. Это делается либо с использованием Spring's OpenSessionInViewInterceptor, либо OpenSessionInViewFilter
Фильтр открытого сеанса в режиме просмотра гарантирует, что сеанс Hibernate будет полностью открыт до рендеринга представления.
Или
Вы можете использовать очереди задач во внутреннем интерфейсе в течение длительного запущенного процесса, как this.
Рабочие очереди (aka: Task Queues) - это избежать необходимости выполнять ресурсоемкую задачу и ждать ее завершения. Вместо этого задачи планируются позже. Задача инкапсулируется как сообщение и отправляется в очередь. Рабочий процесс, выполняющийся в фоновом режиме, будет выполнять задачи и в конечном итоге выполнить задание. Когда вы запускаете много рабочих, задачи будут распределяться между ними.
Эта концепция особенно полезна в веб-приложениях, где невозможно обрабатывать сложную задачу во время короткого окна HTTP-запроса.
Struts просто облегчает разработку веб-приложения. То, что вы ищете здесь, - это то, как запустить асинхронную задачу, это абсолютно неуместно ** для struts. Я рекомендую вам взглянуть на [это руководство] (http://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html). –